package org.xtext.ic.dsl.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.xtext.ic.dsl.services.IcDslGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalIcDslParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'package-prefix'", "'layer'", "'{'", "'}'", "'typedef'", "'mapsto'", "'.'", "'entity'", "'extends'", "'create-connection'", "'('", "')'", "'Type'", "'='", "','", "'Database'", "'User'", "'Password'", "'URL'", "'Port'", "'Pool-Size'", "'create-dao'", "'on-layer'", "'one'", "'many'", "'id'", "'auto-increment'", "'MySQL'", "'SQL Server'", "'Oracle'", "'base-dao'"
    };
    public static final int RULE_ID=4;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_SL_COMMENT=8;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__19=19;
    public static final int T__31=31;
    public static final int RULE_STRING=5;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__16=16;
    public static final int T__34=34;
    public static final int T__15=15;
    public static final int T__35=35;
    public static final int T__18=18;
    public static final int T__36=36;
    public static final int T__17=17;
    public static final int T__37=37;
    public static final int T__12=12;
    public static final int T__38=38;
    public static final int T__11=11;
    public static final int T__39=39;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=6;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalIcDslParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalIcDslParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalIcDslParser.tokenNames; }
    public String getGrammarFileName() { return "../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g"; }


     
     	private IcDslGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(IcDslGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleModel"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:60:1: entryRuleModel : ruleModel EOF ;
    public final void entryRuleModel() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:61:1: ( ruleModel EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:62:1: ruleModel EOF
            {
             before(grammarAccess.getModelRule()); 
            pushFollow(FOLLOW_ruleModel_in_entryRuleModel61);
            ruleModel();

            state._fsp--;

             after(grammarAccess.getModelRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModel68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleModel"


    // $ANTLR start "ruleModel"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:69:1: ruleModel : ( ( rule__Model__Group__0 ) ) ;
    public final void ruleModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:73:2: ( ( ( rule__Model__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:74:1: ( ( rule__Model__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:74:1: ( ( rule__Model__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:75:1: ( rule__Model__Group__0 )
            {
             before(grammarAccess.getModelAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:76:1: ( rule__Model__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:76:2: rule__Model__Group__0
            {
            pushFollow(FOLLOW_rule__Model__Group__0_in_ruleModel94);
            rule__Model__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getModelAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleModel"


    // $ANTLR start "entryRulePackagePrefix"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:88:1: entryRulePackagePrefix : rulePackagePrefix EOF ;
    public final void entryRulePackagePrefix() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:89:1: ( rulePackagePrefix EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:90:1: rulePackagePrefix EOF
            {
             before(grammarAccess.getPackagePrefixRule()); 
            pushFollow(FOLLOW_rulePackagePrefix_in_entryRulePackagePrefix121);
            rulePackagePrefix();

            state._fsp--;

             after(grammarAccess.getPackagePrefixRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRulePackagePrefix128); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRulePackagePrefix"


    // $ANTLR start "rulePackagePrefix"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:97:1: rulePackagePrefix : ( ( rule__PackagePrefix__Group__0 ) ) ;
    public final void rulePackagePrefix() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:101:2: ( ( ( rule__PackagePrefix__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:102:1: ( ( rule__PackagePrefix__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:102:1: ( ( rule__PackagePrefix__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:103:1: ( rule__PackagePrefix__Group__0 )
            {
             before(grammarAccess.getPackagePrefixAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:104:1: ( rule__PackagePrefix__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:104:2: rule__PackagePrefix__Group__0
            {
            pushFollow(FOLLOW_rule__PackagePrefix__Group__0_in_rulePackagePrefix154);
            rule__PackagePrefix__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getPackagePrefixAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rulePackagePrefix"


    // $ANTLR start "entryRuleType"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:116:1: entryRuleType : ruleType EOF ;
    public final void entryRuleType() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:117:1: ( ruleType EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:118:1: ruleType EOF
            {
             before(grammarAccess.getTypeRule()); 
            pushFollow(FOLLOW_ruleType_in_entryRuleType181);
            ruleType();

            state._fsp--;

             after(grammarAccess.getTypeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleType188); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleType"


    // $ANTLR start "ruleType"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:125:1: ruleType : ( ( rule__Type__Alternatives ) ) ;
    public final void ruleType() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:129:2: ( ( ( rule__Type__Alternatives ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:130:1: ( ( rule__Type__Alternatives ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:130:1: ( ( rule__Type__Alternatives ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:131:1: ( rule__Type__Alternatives )
            {
             before(grammarAccess.getTypeAccess().getAlternatives()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:132:1: ( rule__Type__Alternatives )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:132:2: rule__Type__Alternatives
            {
            pushFollow(FOLLOW_rule__Type__Alternatives_in_ruleType214);
            rule__Type__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getTypeAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleType"


    // $ANTLR start "entryRuleLayer"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:144:1: entryRuleLayer : ruleLayer EOF ;
    public final void entryRuleLayer() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:145:1: ( ruleLayer EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:146:1: ruleLayer EOF
            {
             before(grammarAccess.getLayerRule()); 
            pushFollow(FOLLOW_ruleLayer_in_entryRuleLayer241);
            ruleLayer();

            state._fsp--;

             after(grammarAccess.getLayerRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleLayer248); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleLayer"


    // $ANTLR start "ruleLayer"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:153:1: ruleLayer : ( ( rule__Layer__Group__0 ) ) ;
    public final void ruleLayer() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:157:2: ( ( ( rule__Layer__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:158:1: ( ( rule__Layer__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:158:1: ( ( rule__Layer__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:159:1: ( rule__Layer__Group__0 )
            {
             before(grammarAccess.getLayerAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:160:1: ( rule__Layer__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:160:2: rule__Layer__Group__0
            {
            pushFollow(FOLLOW_rule__Layer__Group__0_in_ruleLayer274);
            rule__Layer__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getLayerAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleLayer"


    // $ANTLR start "entryRuleTypeDef"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:172:1: entryRuleTypeDef : ruleTypeDef EOF ;
    public final void entryRuleTypeDef() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:173:1: ( ruleTypeDef EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:174:1: ruleTypeDef EOF
            {
             before(grammarAccess.getTypeDefRule()); 
            pushFollow(FOLLOW_ruleTypeDef_in_entryRuleTypeDef301);
            ruleTypeDef();

            state._fsp--;

             after(grammarAccess.getTypeDefRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTypeDef308); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleTypeDef"


    // $ANTLR start "ruleTypeDef"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:181:1: ruleTypeDef : ( ( rule__TypeDef__Group__0 ) ) ;
    public final void ruleTypeDef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:185:2: ( ( ( rule__TypeDef__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:186:1: ( ( rule__TypeDef__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:186:1: ( ( rule__TypeDef__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:187:1: ( rule__TypeDef__Group__0 )
            {
             before(grammarAccess.getTypeDefAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:188:1: ( rule__TypeDef__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:188:2: rule__TypeDef__Group__0
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__0_in_ruleTypeDef334);
            rule__TypeDef__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getTypeDefAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleTypeDef"


    // $ANTLR start "entryRuleJAVAID"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:200:1: entryRuleJAVAID : ruleJAVAID EOF ;
    public final void entryRuleJAVAID() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:201:1: ( ruleJAVAID EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:202:1: ruleJAVAID EOF
            {
             before(grammarAccess.getJAVAIDRule()); 
            pushFollow(FOLLOW_ruleJAVAID_in_entryRuleJAVAID361);
            ruleJAVAID();

            state._fsp--;

             after(grammarAccess.getJAVAIDRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleJAVAID368); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleJAVAID"


    // $ANTLR start "ruleJAVAID"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:209:1: ruleJAVAID : ( ( rule__JAVAID__Group__0 ) ) ;
    public final void ruleJAVAID() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:213:2: ( ( ( rule__JAVAID__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:214:1: ( ( rule__JAVAID__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:214:1: ( ( rule__JAVAID__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:215:1: ( rule__JAVAID__Group__0 )
            {
             before(grammarAccess.getJAVAIDAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:216:1: ( rule__JAVAID__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:216:2: rule__JAVAID__Group__0
            {
            pushFollow(FOLLOW_rule__JAVAID__Group__0_in_ruleJAVAID394);
            rule__JAVAID__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getJAVAIDAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleJAVAID"


    // $ANTLR start "entryRuleEntity"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:228:1: entryRuleEntity : ruleEntity EOF ;
    public final void entryRuleEntity() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:229:1: ( ruleEntity EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:230:1: ruleEntity EOF
            {
             before(grammarAccess.getEntityRule()); 
            pushFollow(FOLLOW_ruleEntity_in_entryRuleEntity421);
            ruleEntity();

            state._fsp--;

             after(grammarAccess.getEntityRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntity428); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleEntity"


    // $ANTLR start "ruleEntity"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:237:1: ruleEntity : ( ( rule__Entity__Group__0 ) ) ;
    public final void ruleEntity() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:241:2: ( ( ( rule__Entity__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:242:1: ( ( rule__Entity__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:242:1: ( ( rule__Entity__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:243:1: ( rule__Entity__Group__0 )
            {
             before(grammarAccess.getEntityAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:244:1: ( rule__Entity__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:244:2: rule__Entity__Group__0
            {
            pushFollow(FOLLOW_rule__Entity__Group__0_in_ruleEntity454);
            rule__Entity__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleEntity"


    // $ANTLR start "entryRuleAttribute"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:256:1: entryRuleAttribute : ruleAttribute EOF ;
    public final void entryRuleAttribute() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:257:1: ( ruleAttribute EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:258:1: ruleAttribute EOF
            {
             before(grammarAccess.getAttributeRule()); 
            pushFollow(FOLLOW_ruleAttribute_in_entryRuleAttribute481);
            ruleAttribute();

            state._fsp--;

             after(grammarAccess.getAttributeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAttribute488); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleAttribute"


    // $ANTLR start "ruleAttribute"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:265:1: ruleAttribute : ( ( rule__Attribute__Group__0 ) ) ;
    public final void ruleAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:269:2: ( ( ( rule__Attribute__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:270:1: ( ( rule__Attribute__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:270:1: ( ( rule__Attribute__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:271:1: ( rule__Attribute__Group__0 )
            {
             before(grammarAccess.getAttributeAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:272:1: ( rule__Attribute__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:272:2: rule__Attribute__Group__0
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0_in_ruleAttribute514);
            rule__Attribute__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getAttributeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleAttribute"


    // $ANTLR start "entryRuleFlags"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:284:1: entryRuleFlags : ruleFlags EOF ;
    public final void entryRuleFlags() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:285:1: ( ruleFlags EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:286:1: ruleFlags EOF
            {
             before(grammarAccess.getFlagsRule()); 
            pushFollow(FOLLOW_ruleFlags_in_entryRuleFlags541);
            ruleFlags();

            state._fsp--;

             after(grammarAccess.getFlagsRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFlags548); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleFlags"


    // $ANTLR start "ruleFlags"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:293:1: ruleFlags : ( ( rule__Flags__Group__0 ) ) ;
    public final void ruleFlags() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:297:2: ( ( ( rule__Flags__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:298:1: ( ( rule__Flags__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:298:1: ( ( rule__Flags__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:299:1: ( rule__Flags__Group__0 )
            {
             before(grammarAccess.getFlagsAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:300:1: ( rule__Flags__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:300:2: rule__Flags__Group__0
            {
            pushFollow(FOLLOW_rule__Flags__Group__0_in_ruleFlags574);
            rule__Flags__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getFlagsAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleFlags"


    // $ANTLR start "entryRuleConnection"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:312:1: entryRuleConnection : ruleConnection EOF ;
    public final void entryRuleConnection() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:313:1: ( ruleConnection EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:314:1: ruleConnection EOF
            {
             before(grammarAccess.getConnectionRule()); 
            pushFollow(FOLLOW_ruleConnection_in_entryRuleConnection601);
            ruleConnection();

            state._fsp--;

             after(grammarAccess.getConnectionRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleConnection608); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleConnection"


    // $ANTLR start "ruleConnection"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:321:1: ruleConnection : ( ( rule__Connection__Group__0 ) ) ;
    public final void ruleConnection() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:325:2: ( ( ( rule__Connection__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:326:1: ( ( rule__Connection__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:326:1: ( ( rule__Connection__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:327:1: ( rule__Connection__Group__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:328:1: ( rule__Connection__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:328:2: rule__Connection__Group__0
            {
            pushFollow(FOLLOW_rule__Connection__Group__0_in_ruleConnection634);
            rule__Connection__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleConnection"


    // $ANTLR start "entryRuleDataBase"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:340:1: entryRuleDataBase : ruleDataBase EOF ;
    public final void entryRuleDataBase() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:341:1: ( ruleDataBase EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:342:1: ruleDataBase EOF
            {
             before(grammarAccess.getDataBaseRule()); 
            pushFollow(FOLLOW_ruleDataBase_in_entryRuleDataBase661);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getDataBaseRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDataBase668); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleDataBase"


    // $ANTLR start "ruleDataBase"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:349:1: ruleDataBase : ( ( rule__DataBase__Alternatives ) ) ;
    public final void ruleDataBase() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:353:2: ( ( ( rule__DataBase__Alternatives ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:354:1: ( ( rule__DataBase__Alternatives ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:354:1: ( ( rule__DataBase__Alternatives ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:355:1: ( rule__DataBase__Alternatives )
            {
             before(grammarAccess.getDataBaseAccess().getAlternatives()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:356:1: ( rule__DataBase__Alternatives )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:356:2: rule__DataBase__Alternatives
            {
            pushFollow(FOLLOW_rule__DataBase__Alternatives_in_ruleDataBase694);
            rule__DataBase__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getDataBaseAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleDataBase"


    // $ANTLR start "entryRuleCreateDAO"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:368:1: entryRuleCreateDAO : ruleCreateDAO EOF ;
    public final void entryRuleCreateDAO() throws RecognitionException {
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:369:1: ( ruleCreateDAO EOF )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:370:1: ruleCreateDAO EOF
            {
             before(grammarAccess.getCreateDAORule()); 
            pushFollow(FOLLOW_ruleCreateDAO_in_entryRuleCreateDAO721);
            ruleCreateDAO();

            state._fsp--;

             after(grammarAccess.getCreateDAORule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleCreateDAO728); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleCreateDAO"


    // $ANTLR start "ruleCreateDAO"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:377:1: ruleCreateDAO : ( ( rule__CreateDAO__Group__0 ) ) ;
    public final void ruleCreateDAO() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:381:2: ( ( ( rule__CreateDAO__Group__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:382:1: ( ( rule__CreateDAO__Group__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:382:1: ( ( rule__CreateDAO__Group__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:383:1: ( rule__CreateDAO__Group__0 )
            {
             before(grammarAccess.getCreateDAOAccess().getGroup()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:384:1: ( rule__CreateDAO__Group__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:384:2: rule__CreateDAO__Group__0
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__0_in_ruleCreateDAO754);
            rule__CreateDAO__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getCreateDAOAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleCreateDAO"


    // $ANTLR start "rule__Type__Alternatives"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:396:1: rule__Type__Alternatives : ( ( ruleLayer ) | ( ruleTypeDef ) | ( ruleEntity ) );
    public final void rule__Type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:400:1: ( ( ruleLayer ) | ( ruleTypeDef ) | ( ruleEntity ) )
            int alt1=3;
            switch ( input.LA(1) ) {
            case 12:
                {
                alt1=1;
                }
                break;
            case 15:
                {
                alt1=2;
                }
                break;
            case 18:
                {
                alt1=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:401:1: ( ruleLayer )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:401:1: ( ruleLayer )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:402:1: ruleLayer
                    {
                     before(grammarAccess.getTypeAccess().getLayerParserRuleCall_0()); 
                    pushFollow(FOLLOW_ruleLayer_in_rule__Type__Alternatives790);
                    ruleLayer();

                    state._fsp--;

                     after(grammarAccess.getTypeAccess().getLayerParserRuleCall_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:407:6: ( ruleTypeDef )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:407:6: ( ruleTypeDef )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:408:1: ruleTypeDef
                    {
                     before(grammarAccess.getTypeAccess().getTypeDefParserRuleCall_1()); 
                    pushFollow(FOLLOW_ruleTypeDef_in_rule__Type__Alternatives807);
                    ruleTypeDef();

                    state._fsp--;

                     after(grammarAccess.getTypeAccess().getTypeDefParserRuleCall_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:413:6: ( ruleEntity )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:413:6: ( ruleEntity )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:414:1: ruleEntity
                    {
                     before(grammarAccess.getTypeAccess().getEntityParserRuleCall_2()); 
                    pushFollow(FOLLOW_ruleEntity_in_rule__Type__Alternatives824);
                    ruleEntity();

                    state._fsp--;

                     after(grammarAccess.getTypeAccess().getEntityParserRuleCall_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Type__Alternatives"


    // $ANTLR start "rule__Attribute__Alternatives_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:424:1: rule__Attribute__Alternatives_0 : ( ( ( rule__Attribute__OneAssignment_0_0 ) ) | ( ( rule__Attribute__ManyAssignment_0_1 ) ) );
    public final void rule__Attribute__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:428:1: ( ( ( rule__Attribute__OneAssignment_0_0 ) ) | ( ( rule__Attribute__ManyAssignment_0_1 ) ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==34) ) {
                alt2=1;
            }
            else if ( (LA2_0==35) ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:429:1: ( ( rule__Attribute__OneAssignment_0_0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:429:1: ( ( rule__Attribute__OneAssignment_0_0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:430:1: ( rule__Attribute__OneAssignment_0_0 )
                    {
                     before(grammarAccess.getAttributeAccess().getOneAssignment_0_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:431:1: ( rule__Attribute__OneAssignment_0_0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:431:2: rule__Attribute__OneAssignment_0_0
                    {
                    pushFollow(FOLLOW_rule__Attribute__OneAssignment_0_0_in_rule__Attribute__Alternatives_0856);
                    rule__Attribute__OneAssignment_0_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getAttributeAccess().getOneAssignment_0_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:435:6: ( ( rule__Attribute__ManyAssignment_0_1 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:435:6: ( ( rule__Attribute__ManyAssignment_0_1 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:436:1: ( rule__Attribute__ManyAssignment_0_1 )
                    {
                     before(grammarAccess.getAttributeAccess().getManyAssignment_0_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:437:1: ( rule__Attribute__ManyAssignment_0_1 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:437:2: rule__Attribute__ManyAssignment_0_1
                    {
                    pushFollow(FOLLOW_rule__Attribute__ManyAssignment_0_1_in_rule__Attribute__Alternatives_0874);
                    rule__Attribute__ManyAssignment_0_1();

                    state._fsp--;


                    }

                     after(grammarAccess.getAttributeAccess().getManyAssignment_0_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Alternatives_0"


    // $ANTLR start "rule__Connection__Alternatives_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:446:1: rule__Connection__Alternatives_2 : ( ( ( rule__Connection__Group_2_0__0 ) ) | ( ( rule__Connection__Group_2_1__0 ) ) | ( ( rule__Connection__Group_2_2__0 ) ) | ( ( rule__Connection__Group_2_3__0 ) ) | ( ( rule__Connection__Group_2_4__0 ) ) | ( ( rule__Connection__Group_2_5__0 ) ) | ( ( rule__Connection__Group_2_6__0 ) ) );
    public final void rule__Connection__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:450:1: ( ( ( rule__Connection__Group_2_0__0 ) ) | ( ( rule__Connection__Group_2_1__0 ) ) | ( ( rule__Connection__Group_2_2__0 ) ) | ( ( rule__Connection__Group_2_3__0 ) ) | ( ( rule__Connection__Group_2_4__0 ) ) | ( ( rule__Connection__Group_2_5__0 ) ) | ( ( rule__Connection__Group_2_6__0 ) ) )
            int alt3=7;
            switch ( input.LA(1) ) {
            case 23:
                {
                alt3=1;
                }
                break;
            case 26:
                {
                alt3=2;
                }
                break;
            case 27:
                {
                alt3=3;
                }
                break;
            case 28:
                {
                alt3=4;
                }
                break;
            case 29:
                {
                alt3=5;
                }
                break;
            case 30:
                {
                alt3=6;
                }
                break;
            case 31:
                {
                alt3=7;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }

            switch (alt3) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:451:1: ( ( rule__Connection__Group_2_0__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:451:1: ( ( rule__Connection__Group_2_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:452:1: ( rule__Connection__Group_2_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:453:1: ( rule__Connection__Group_2_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:453:2: rule__Connection__Group_2_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0__0_in_rule__Connection__Alternatives_2907);
                    rule__Connection__Group_2_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:457:6: ( ( rule__Connection__Group_2_1__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:457:6: ( ( rule__Connection__Group_2_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:458:1: ( rule__Connection__Group_2_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:459:1: ( rule__Connection__Group_2_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:459:2: rule__Connection__Group_2_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1__0_in_rule__Connection__Alternatives_2925);
                    rule__Connection__Group_2_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:463:6: ( ( rule__Connection__Group_2_2__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:463:6: ( ( rule__Connection__Group_2_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:464:1: ( rule__Connection__Group_2_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:465:1: ( rule__Connection__Group_2_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:465:2: rule__Connection__Group_2_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2__0_in_rule__Connection__Alternatives_2943);
                    rule__Connection__Group_2_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2()); 

                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:469:6: ( ( rule__Connection__Group_2_3__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:469:6: ( ( rule__Connection__Group_2_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:470:1: ( rule__Connection__Group_2_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:471:1: ( rule__Connection__Group_2_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:471:2: rule__Connection__Group_2_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3__0_in_rule__Connection__Alternatives_2961);
                    rule__Connection__Group_2_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3()); 

                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:475:6: ( ( rule__Connection__Group_2_4__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:475:6: ( ( rule__Connection__Group_2_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:476:1: ( rule__Connection__Group_2_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:477:1: ( rule__Connection__Group_2_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:477:2: rule__Connection__Group_2_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4__0_in_rule__Connection__Alternatives_2979);
                    rule__Connection__Group_2_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4()); 

                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:481:6: ( ( rule__Connection__Group_2_5__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:481:6: ( ( rule__Connection__Group_2_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:482:1: ( rule__Connection__Group_2_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:483:1: ( rule__Connection__Group_2_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:483:2: rule__Connection__Group_2_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5__0_in_rule__Connection__Alternatives_2997);
                    rule__Connection__Group_2_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5()); 

                    }


                    }
                    break;
                case 7 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:487:6: ( ( rule__Connection__Group_2_6__0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:487:6: ( ( rule__Connection__Group_2_6__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:488:1: ( rule__Connection__Group_2_6__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:489:1: ( rule__Connection__Group_2_6__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:489:2: rule__Connection__Group_2_6__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6__0_in_rule__Connection__Alternatives_21015);
                    rule__Connection__Group_2_6__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Alternatives_2"


    // $ANTLR start "rule__DataBase__Alternatives"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:498:1: rule__DataBase__Alternatives : ( ( ( rule__DataBase__MysqlAssignment_0 ) ) | ( ( rule__DataBase__SqlserverAssignment_1 ) ) | ( ( rule__DataBase__OracleAssignment_2 ) ) );
    public final void rule__DataBase__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:502:1: ( ( ( rule__DataBase__MysqlAssignment_0 ) ) | ( ( rule__DataBase__SqlserverAssignment_1 ) ) | ( ( rule__DataBase__OracleAssignment_2 ) ) )
            int alt4=3;
            switch ( input.LA(1) ) {
            case 38:
                {
                alt4=1;
                }
                break;
            case 39:
                {
                alt4=2;
                }
                break;
            case 40:
                {
                alt4=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }

            switch (alt4) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:503:1: ( ( rule__DataBase__MysqlAssignment_0 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:503:1: ( ( rule__DataBase__MysqlAssignment_0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:504:1: ( rule__DataBase__MysqlAssignment_0 )
                    {
                     before(grammarAccess.getDataBaseAccess().getMysqlAssignment_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:505:1: ( rule__DataBase__MysqlAssignment_0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:505:2: rule__DataBase__MysqlAssignment_0
                    {
                    pushFollow(FOLLOW_rule__DataBase__MysqlAssignment_0_in_rule__DataBase__Alternatives1048);
                    rule__DataBase__MysqlAssignment_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getDataBaseAccess().getMysqlAssignment_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:509:6: ( ( rule__DataBase__SqlserverAssignment_1 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:509:6: ( ( rule__DataBase__SqlserverAssignment_1 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:510:1: ( rule__DataBase__SqlserverAssignment_1 )
                    {
                     before(grammarAccess.getDataBaseAccess().getSqlserverAssignment_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:511:1: ( rule__DataBase__SqlserverAssignment_1 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:511:2: rule__DataBase__SqlserverAssignment_1
                    {
                    pushFollow(FOLLOW_rule__DataBase__SqlserverAssignment_1_in_rule__DataBase__Alternatives1066);
                    rule__DataBase__SqlserverAssignment_1();

                    state._fsp--;


                    }

                     after(grammarAccess.getDataBaseAccess().getSqlserverAssignment_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:515:6: ( ( rule__DataBase__OracleAssignment_2 ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:515:6: ( ( rule__DataBase__OracleAssignment_2 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:516:1: ( rule__DataBase__OracleAssignment_2 )
                    {
                     before(grammarAccess.getDataBaseAccess().getOracleAssignment_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:517:1: ( rule__DataBase__OracleAssignment_2 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:517:2: rule__DataBase__OracleAssignment_2
                    {
                    pushFollow(FOLLOW_rule__DataBase__OracleAssignment_2_in_rule__DataBase__Alternatives1084);
                    rule__DataBase__OracleAssignment_2();

                    state._fsp--;


                    }

                     after(grammarAccess.getDataBaseAccess().getOracleAssignment_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataBase__Alternatives"


    // $ANTLR start "rule__Model__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:528:1: rule__Model__Group__0 : rule__Model__Group__0__Impl rule__Model__Group__1 ;
    public final void rule__Model__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:532:1: ( rule__Model__Group__0__Impl rule__Model__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:533:2: rule__Model__Group__0__Impl rule__Model__Group__1
            {
            pushFollow(FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__01115);
            rule__Model__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Model__Group__1_in_rule__Model__Group__01118);
            rule__Model__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__0"


    // $ANTLR start "rule__Model__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:540:1: rule__Model__Group__0__Impl : ( ( rule__Model__PackageAssignment_0 )? ) ;
    public final void rule__Model__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:544:1: ( ( ( rule__Model__PackageAssignment_0 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:545:1: ( ( rule__Model__PackageAssignment_0 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:545:1: ( ( rule__Model__PackageAssignment_0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:546:1: ( rule__Model__PackageAssignment_0 )?
            {
             before(grammarAccess.getModelAccess().getPackageAssignment_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:547:1: ( rule__Model__PackageAssignment_0 )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==11) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:547:2: rule__Model__PackageAssignment_0
                    {
                    pushFollow(FOLLOW_rule__Model__PackageAssignment_0_in_rule__Model__Group__0__Impl1145);
                    rule__Model__PackageAssignment_0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getModelAccess().getPackageAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__0__Impl"


    // $ANTLR start "rule__Model__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:557:1: rule__Model__Group__1 : rule__Model__Group__1__Impl rule__Model__Group__2 ;
    public final void rule__Model__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:561:1: ( rule__Model__Group__1__Impl rule__Model__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:562:2: rule__Model__Group__1__Impl rule__Model__Group__2
            {
            pushFollow(FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__11176);
            rule__Model__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Model__Group__2_in_rule__Model__Group__11179);
            rule__Model__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__1"


    // $ANTLR start "rule__Model__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:569:1: rule__Model__Group__1__Impl : ( ( rule__Model__UnorderedGroup_1 ) ) ;
    public final void rule__Model__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:573:1: ( ( ( rule__Model__UnorderedGroup_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:574:1: ( ( rule__Model__UnorderedGroup_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:574:1: ( ( rule__Model__UnorderedGroup_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:575:1: ( rule__Model__UnorderedGroup_1 )
            {
             before(grammarAccess.getModelAccess().getUnorderedGroup_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:576:1: ( rule__Model__UnorderedGroup_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:576:2: rule__Model__UnorderedGroup_1
            {
            pushFollow(FOLLOW_rule__Model__UnorderedGroup_1_in_rule__Model__Group__1__Impl1206);
            rule__Model__UnorderedGroup_1();

            state._fsp--;


            }

             after(grammarAccess.getModelAccess().getUnorderedGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__1__Impl"


    // $ANTLR start "rule__Model__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:586:1: rule__Model__Group__2 : rule__Model__Group__2__Impl ;
    public final void rule__Model__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:590:1: ( rule__Model__Group__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:591:2: rule__Model__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__Model__Group__2__Impl_in_rule__Model__Group__21236);
            rule__Model__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__2"


    // $ANTLR start "rule__Model__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:597:1: rule__Model__Group__2__Impl : ( ( rule__Model__TypesAssignment_2 )* ) ;
    public final void rule__Model__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:601:1: ( ( ( rule__Model__TypesAssignment_2 )* ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:602:1: ( ( rule__Model__TypesAssignment_2 )* )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:602:1: ( ( rule__Model__TypesAssignment_2 )* )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:603:1: ( rule__Model__TypesAssignment_2 )*
            {
             before(grammarAccess.getModelAccess().getTypesAssignment_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:604:1: ( rule__Model__TypesAssignment_2 )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==12||LA6_0==15||LA6_0==18) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:604:2: rule__Model__TypesAssignment_2
            	    {
            	    pushFollow(FOLLOW_rule__Model__TypesAssignment_2_in_rule__Model__Group__2__Impl1263);
            	    rule__Model__TypesAssignment_2();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);

             after(grammarAccess.getModelAccess().getTypesAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__Group__2__Impl"


    // $ANTLR start "rule__PackagePrefix__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:620:1: rule__PackagePrefix__Group__0 : rule__PackagePrefix__Group__0__Impl rule__PackagePrefix__Group__1 ;
    public final void rule__PackagePrefix__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:624:1: ( rule__PackagePrefix__Group__0__Impl rule__PackagePrefix__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:625:2: rule__PackagePrefix__Group__0__Impl rule__PackagePrefix__Group__1
            {
            pushFollow(FOLLOW_rule__PackagePrefix__Group__0__Impl_in_rule__PackagePrefix__Group__01300);
            rule__PackagePrefix__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__PackagePrefix__Group__1_in_rule__PackagePrefix__Group__01303);
            rule__PackagePrefix__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackagePrefix__Group__0"


    // $ANTLR start "rule__PackagePrefix__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:632:1: rule__PackagePrefix__Group__0__Impl : ( 'package-prefix' ) ;
    public final void rule__PackagePrefix__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:636:1: ( ( 'package-prefix' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:637:1: ( 'package-prefix' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:637:1: ( 'package-prefix' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:638:1: 'package-prefix'
            {
             before(grammarAccess.getPackagePrefixAccess().getPackagePrefixKeyword_0()); 
            match(input,11,FOLLOW_11_in_rule__PackagePrefix__Group__0__Impl1331); 
             after(grammarAccess.getPackagePrefixAccess().getPackagePrefixKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackagePrefix__Group__0__Impl"


    // $ANTLR start "rule__PackagePrefix__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:651:1: rule__PackagePrefix__Group__1 : rule__PackagePrefix__Group__1__Impl ;
    public final void rule__PackagePrefix__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:655:1: ( rule__PackagePrefix__Group__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:656:2: rule__PackagePrefix__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__PackagePrefix__Group__1__Impl_in_rule__PackagePrefix__Group__11362);
            rule__PackagePrefix__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackagePrefix__Group__1"


    // $ANTLR start "rule__PackagePrefix__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:662:1: rule__PackagePrefix__Group__1__Impl : ( ( rule__PackagePrefix__NameAssignment_1 ) ) ;
    public final void rule__PackagePrefix__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:666:1: ( ( ( rule__PackagePrefix__NameAssignment_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:667:1: ( ( rule__PackagePrefix__NameAssignment_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:667:1: ( ( rule__PackagePrefix__NameAssignment_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:668:1: ( rule__PackagePrefix__NameAssignment_1 )
            {
             before(grammarAccess.getPackagePrefixAccess().getNameAssignment_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:669:1: ( rule__PackagePrefix__NameAssignment_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:669:2: rule__PackagePrefix__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__PackagePrefix__NameAssignment_1_in_rule__PackagePrefix__Group__1__Impl1389);
            rule__PackagePrefix__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getPackagePrefixAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackagePrefix__Group__1__Impl"


    // $ANTLR start "rule__Layer__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:683:1: rule__Layer__Group__0 : rule__Layer__Group__0__Impl rule__Layer__Group__1 ;
    public final void rule__Layer__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:687:1: ( rule__Layer__Group__0__Impl rule__Layer__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:688:2: rule__Layer__Group__0__Impl rule__Layer__Group__1
            {
            pushFollow(FOLLOW_rule__Layer__Group__0__Impl_in_rule__Layer__Group__01423);
            rule__Layer__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Layer__Group__1_in_rule__Layer__Group__01426);
            rule__Layer__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__0"


    // $ANTLR start "rule__Layer__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:695:1: rule__Layer__Group__0__Impl : ( 'layer' ) ;
    public final void rule__Layer__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:699:1: ( ( 'layer' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:700:1: ( 'layer' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:700:1: ( 'layer' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:701:1: 'layer'
            {
             before(grammarAccess.getLayerAccess().getLayerKeyword_0()); 
            match(input,12,FOLLOW_12_in_rule__Layer__Group__0__Impl1454); 
             after(grammarAccess.getLayerAccess().getLayerKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__0__Impl"


    // $ANTLR start "rule__Layer__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:714:1: rule__Layer__Group__1 : rule__Layer__Group__1__Impl rule__Layer__Group__2 ;
    public final void rule__Layer__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:718:1: ( rule__Layer__Group__1__Impl rule__Layer__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:719:2: rule__Layer__Group__1__Impl rule__Layer__Group__2
            {
            pushFollow(FOLLOW_rule__Layer__Group__1__Impl_in_rule__Layer__Group__11485);
            rule__Layer__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Layer__Group__2_in_rule__Layer__Group__11488);
            rule__Layer__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__1"


    // $ANTLR start "rule__Layer__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:726:1: rule__Layer__Group__1__Impl : ( ( rule__Layer__NameAssignment_1 ) ) ;
    public final void rule__Layer__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:730:1: ( ( ( rule__Layer__NameAssignment_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:731:1: ( ( rule__Layer__NameAssignment_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:731:1: ( ( rule__Layer__NameAssignment_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:732:1: ( rule__Layer__NameAssignment_1 )
            {
             before(grammarAccess.getLayerAccess().getNameAssignment_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:733:1: ( rule__Layer__NameAssignment_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:733:2: rule__Layer__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Layer__NameAssignment_1_in_rule__Layer__Group__1__Impl1515);
            rule__Layer__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getLayerAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__1__Impl"


    // $ANTLR start "rule__Layer__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:743:1: rule__Layer__Group__2 : rule__Layer__Group__2__Impl rule__Layer__Group__3 ;
    public final void rule__Layer__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:747:1: ( rule__Layer__Group__2__Impl rule__Layer__Group__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:748:2: rule__Layer__Group__2__Impl rule__Layer__Group__3
            {
            pushFollow(FOLLOW_rule__Layer__Group__2__Impl_in_rule__Layer__Group__21545);
            rule__Layer__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Layer__Group__3_in_rule__Layer__Group__21548);
            rule__Layer__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__2"


    // $ANTLR start "rule__Layer__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:755:1: rule__Layer__Group__2__Impl : ( '{' ) ;
    public final void rule__Layer__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:759:1: ( ( '{' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:760:1: ( '{' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:760:1: ( '{' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:761:1: '{'
            {
             before(grammarAccess.getLayerAccess().getLeftCurlyBracketKeyword_2()); 
            match(input,13,FOLLOW_13_in_rule__Layer__Group__2__Impl1576); 
             after(grammarAccess.getLayerAccess().getLeftCurlyBracketKeyword_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__2__Impl"


    // $ANTLR start "rule__Layer__Group__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:774:1: rule__Layer__Group__3 : rule__Layer__Group__3__Impl rule__Layer__Group__4 ;
    public final void rule__Layer__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:778:1: ( rule__Layer__Group__3__Impl rule__Layer__Group__4 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:779:2: rule__Layer__Group__3__Impl rule__Layer__Group__4
            {
            pushFollow(FOLLOW_rule__Layer__Group__3__Impl_in_rule__Layer__Group__31607);
            rule__Layer__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Layer__Group__4_in_rule__Layer__Group__31610);
            rule__Layer__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__3"


    // $ANTLR start "rule__Layer__Group__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:786:1: rule__Layer__Group__3__Impl : ( ( rule__Layer__UnorderedGroup_3 ) ) ;
    public final void rule__Layer__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:790:1: ( ( ( rule__Layer__UnorderedGroup_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:791:1: ( ( rule__Layer__UnorderedGroup_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:791:1: ( ( rule__Layer__UnorderedGroup_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:792:1: ( rule__Layer__UnorderedGroup_3 )
            {
             before(grammarAccess.getLayerAccess().getUnorderedGroup_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:793:1: ( rule__Layer__UnorderedGroup_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:793:2: rule__Layer__UnorderedGroup_3
            {
            pushFollow(FOLLOW_rule__Layer__UnorderedGroup_3_in_rule__Layer__Group__3__Impl1637);
            rule__Layer__UnorderedGroup_3();

            state._fsp--;


            }

             after(grammarAccess.getLayerAccess().getUnorderedGroup_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__3__Impl"


    // $ANTLR start "rule__Layer__Group__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:803:1: rule__Layer__Group__4 : rule__Layer__Group__4__Impl rule__Layer__Group__5 ;
    public final void rule__Layer__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:807:1: ( rule__Layer__Group__4__Impl rule__Layer__Group__5 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:808:2: rule__Layer__Group__4__Impl rule__Layer__Group__5
            {
            pushFollow(FOLLOW_rule__Layer__Group__4__Impl_in_rule__Layer__Group__41667);
            rule__Layer__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Layer__Group__5_in_rule__Layer__Group__41670);
            rule__Layer__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__4"


    // $ANTLR start "rule__Layer__Group__4__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:815:1: rule__Layer__Group__4__Impl : ( ( rule__Layer__TypesAssignment_4 )* ) ;
    public final void rule__Layer__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:819:1: ( ( ( rule__Layer__TypesAssignment_4 )* ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:820:1: ( ( rule__Layer__TypesAssignment_4 )* )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:820:1: ( ( rule__Layer__TypesAssignment_4 )* )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:821:1: ( rule__Layer__TypesAssignment_4 )*
            {
             before(grammarAccess.getLayerAccess().getTypesAssignment_4()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:822:1: ( rule__Layer__TypesAssignment_4 )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==12||LA7_0==15||LA7_0==18) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:822:2: rule__Layer__TypesAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Layer__TypesAssignment_4_in_rule__Layer__Group__4__Impl1697);
            	    rule__Layer__TypesAssignment_4();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);

             after(grammarAccess.getLayerAccess().getTypesAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__4__Impl"


    // $ANTLR start "rule__Layer__Group__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:832:1: rule__Layer__Group__5 : rule__Layer__Group__5__Impl ;
    public final void rule__Layer__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:836:1: ( rule__Layer__Group__5__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:837:2: rule__Layer__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Layer__Group__5__Impl_in_rule__Layer__Group__51728);
            rule__Layer__Group__5__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__5"


    // $ANTLR start "rule__Layer__Group__5__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:843:1: rule__Layer__Group__5__Impl : ( '}' ) ;
    public final void rule__Layer__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:847:1: ( ( '}' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:848:1: ( '}' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:848:1: ( '}' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:849:1: '}'
            {
             before(grammarAccess.getLayerAccess().getRightCurlyBracketKeyword_5()); 
            match(input,14,FOLLOW_14_in_rule__Layer__Group__5__Impl1756); 
             after(grammarAccess.getLayerAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__Group__5__Impl"


    // $ANTLR start "rule__TypeDef__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:874:1: rule__TypeDef__Group__0 : rule__TypeDef__Group__0__Impl rule__TypeDef__Group__1 ;
    public final void rule__TypeDef__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:878:1: ( rule__TypeDef__Group__0__Impl rule__TypeDef__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:879:2: rule__TypeDef__Group__0__Impl rule__TypeDef__Group__1
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__0__Impl_in_rule__TypeDef__Group__01799);
            rule__TypeDef__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__TypeDef__Group__1_in_rule__TypeDef__Group__01802);
            rule__TypeDef__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__0"


    // $ANTLR start "rule__TypeDef__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:886:1: rule__TypeDef__Group__0__Impl : ( 'typedef' ) ;
    public final void rule__TypeDef__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:890:1: ( ( 'typedef' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:891:1: ( 'typedef' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:891:1: ( 'typedef' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:892:1: 'typedef'
            {
             before(grammarAccess.getTypeDefAccess().getTypedefKeyword_0()); 
            match(input,15,FOLLOW_15_in_rule__TypeDef__Group__0__Impl1830); 
             after(grammarAccess.getTypeDefAccess().getTypedefKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__0__Impl"


    // $ANTLR start "rule__TypeDef__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:905:1: rule__TypeDef__Group__1 : rule__TypeDef__Group__1__Impl rule__TypeDef__Group__2 ;
    public final void rule__TypeDef__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:909:1: ( rule__TypeDef__Group__1__Impl rule__TypeDef__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:910:2: rule__TypeDef__Group__1__Impl rule__TypeDef__Group__2
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__1__Impl_in_rule__TypeDef__Group__11861);
            rule__TypeDef__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__TypeDef__Group__2_in_rule__TypeDef__Group__11864);
            rule__TypeDef__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__1"


    // $ANTLR start "rule__TypeDef__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:917:1: rule__TypeDef__Group__1__Impl : ( ( rule__TypeDef__NameAssignment_1 ) ) ;
    public final void rule__TypeDef__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:921:1: ( ( ( rule__TypeDef__NameAssignment_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:922:1: ( ( rule__TypeDef__NameAssignment_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:922:1: ( ( rule__TypeDef__NameAssignment_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:923:1: ( rule__TypeDef__NameAssignment_1 )
            {
             before(grammarAccess.getTypeDefAccess().getNameAssignment_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:924:1: ( rule__TypeDef__NameAssignment_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:924:2: rule__TypeDef__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__TypeDef__NameAssignment_1_in_rule__TypeDef__Group__1__Impl1891);
            rule__TypeDef__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getTypeDefAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__1__Impl"


    // $ANTLR start "rule__TypeDef__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:934:1: rule__TypeDef__Group__2 : rule__TypeDef__Group__2__Impl ;
    public final void rule__TypeDef__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:938:1: ( rule__TypeDef__Group__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:939:2: rule__TypeDef__Group__2__Impl
            {
            pushFollow(FOLLOW_rule__TypeDef__Group__2__Impl_in_rule__TypeDef__Group__21921);
            rule__TypeDef__Group__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__2"


    // $ANTLR start "rule__TypeDef__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:945:1: rule__TypeDef__Group__2__Impl : ( ( rule__TypeDef__Group_2__0 )? ) ;
    public final void rule__TypeDef__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:949:1: ( ( ( rule__TypeDef__Group_2__0 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:950:1: ( ( rule__TypeDef__Group_2__0 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:950:1: ( ( rule__TypeDef__Group_2__0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:951:1: ( rule__TypeDef__Group_2__0 )?
            {
             before(grammarAccess.getTypeDefAccess().getGroup_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:952:1: ( rule__TypeDef__Group_2__0 )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==16) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:952:2: rule__TypeDef__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__TypeDef__Group_2__0_in_rule__TypeDef__Group__2__Impl1948);
                    rule__TypeDef__Group_2__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getTypeDefAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group__2__Impl"


    // $ANTLR start "rule__TypeDef__Group_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:968:1: rule__TypeDef__Group_2__0 : rule__TypeDef__Group_2__0__Impl rule__TypeDef__Group_2__1 ;
    public final void rule__TypeDef__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:972:1: ( rule__TypeDef__Group_2__0__Impl rule__TypeDef__Group_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:973:2: rule__TypeDef__Group_2__0__Impl rule__TypeDef__Group_2__1
            {
            pushFollow(FOLLOW_rule__TypeDef__Group_2__0__Impl_in_rule__TypeDef__Group_2__01985);
            rule__TypeDef__Group_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__TypeDef__Group_2__1_in_rule__TypeDef__Group_2__01988);
            rule__TypeDef__Group_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group_2__0"


    // $ANTLR start "rule__TypeDef__Group_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:980:1: rule__TypeDef__Group_2__0__Impl : ( 'mapsto' ) ;
    public final void rule__TypeDef__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:984:1: ( ( 'mapsto' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:985:1: ( 'mapsto' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:985:1: ( 'mapsto' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:986:1: 'mapsto'
            {
             before(grammarAccess.getTypeDefAccess().getMapstoKeyword_2_0()); 
            match(input,16,FOLLOW_16_in_rule__TypeDef__Group_2__0__Impl2016); 
             after(grammarAccess.getTypeDefAccess().getMapstoKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group_2__0__Impl"


    // $ANTLR start "rule__TypeDef__Group_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:999:1: rule__TypeDef__Group_2__1 : rule__TypeDef__Group_2__1__Impl ;
    public final void rule__TypeDef__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1003:1: ( rule__TypeDef__Group_2__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1004:2: rule__TypeDef__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__TypeDef__Group_2__1__Impl_in_rule__TypeDef__Group_2__12047);
            rule__TypeDef__Group_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group_2__1"


    // $ANTLR start "rule__TypeDef__Group_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1010:1: rule__TypeDef__Group_2__1__Impl : ( ( rule__TypeDef__MappedTypeAssignment_2_1 ) ) ;
    public final void rule__TypeDef__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1014:1: ( ( ( rule__TypeDef__MappedTypeAssignment_2_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1015:1: ( ( rule__TypeDef__MappedTypeAssignment_2_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1015:1: ( ( rule__TypeDef__MappedTypeAssignment_2_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1016:1: ( rule__TypeDef__MappedTypeAssignment_2_1 )
            {
             before(grammarAccess.getTypeDefAccess().getMappedTypeAssignment_2_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1017:1: ( rule__TypeDef__MappedTypeAssignment_2_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1017:2: rule__TypeDef__MappedTypeAssignment_2_1
            {
            pushFollow(FOLLOW_rule__TypeDef__MappedTypeAssignment_2_1_in_rule__TypeDef__Group_2__1__Impl2074);
            rule__TypeDef__MappedTypeAssignment_2_1();

            state._fsp--;


            }

             after(grammarAccess.getTypeDefAccess().getMappedTypeAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__Group_2__1__Impl"


    // $ANTLR start "rule__JAVAID__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1031:1: rule__JAVAID__Group__0 : rule__JAVAID__Group__0__Impl rule__JAVAID__Group__1 ;
    public final void rule__JAVAID__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1035:1: ( rule__JAVAID__Group__0__Impl rule__JAVAID__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1036:2: rule__JAVAID__Group__0__Impl rule__JAVAID__Group__1
            {
            pushFollow(FOLLOW_rule__JAVAID__Group__0__Impl_in_rule__JAVAID__Group__02108);
            rule__JAVAID__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__JAVAID__Group__1_in_rule__JAVAID__Group__02111);
            rule__JAVAID__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group__0"


    // $ANTLR start "rule__JAVAID__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1043:1: rule__JAVAID__Group__0__Impl : ( RULE_ID ) ;
    public final void rule__JAVAID__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1047:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1048:1: ( RULE_ID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1048:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1049:1: RULE_ID
            {
             before(grammarAccess.getJAVAIDAccess().getIDTerminalRuleCall_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__JAVAID__Group__0__Impl2138); 
             after(grammarAccess.getJAVAIDAccess().getIDTerminalRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group__0__Impl"


    // $ANTLR start "rule__JAVAID__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1060:1: rule__JAVAID__Group__1 : rule__JAVAID__Group__1__Impl ;
    public final void rule__JAVAID__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1064:1: ( rule__JAVAID__Group__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1065:2: rule__JAVAID__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__JAVAID__Group__1__Impl_in_rule__JAVAID__Group__12167);
            rule__JAVAID__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group__1"


    // $ANTLR start "rule__JAVAID__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1071:1: rule__JAVAID__Group__1__Impl : ( ( rule__JAVAID__Group_1__0 )* ) ;
    public final void rule__JAVAID__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1075:1: ( ( ( rule__JAVAID__Group_1__0 )* ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1076:1: ( ( rule__JAVAID__Group_1__0 )* )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1076:1: ( ( rule__JAVAID__Group_1__0 )* )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1077:1: ( rule__JAVAID__Group_1__0 )*
            {
             before(grammarAccess.getJAVAIDAccess().getGroup_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1078:1: ( rule__JAVAID__Group_1__0 )*
            loop9:
            do {
                int alt9=2;
                int LA9_0 = input.LA(1);

                if ( (LA9_0==17) ) {
                    alt9=1;
                }


                switch (alt9) {
            	case 1 :
            	    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1078:2: rule__JAVAID__Group_1__0
            	    {
            	    pushFollow(FOLLOW_rule__JAVAID__Group_1__0_in_rule__JAVAID__Group__1__Impl2194);
            	    rule__JAVAID__Group_1__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop9;
                }
            } while (true);

             after(grammarAccess.getJAVAIDAccess().getGroup_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group__1__Impl"


    // $ANTLR start "rule__JAVAID__Group_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1092:1: rule__JAVAID__Group_1__0 : rule__JAVAID__Group_1__0__Impl rule__JAVAID__Group_1__1 ;
    public final void rule__JAVAID__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1096:1: ( rule__JAVAID__Group_1__0__Impl rule__JAVAID__Group_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1097:2: rule__JAVAID__Group_1__0__Impl rule__JAVAID__Group_1__1
            {
            pushFollow(FOLLOW_rule__JAVAID__Group_1__0__Impl_in_rule__JAVAID__Group_1__02229);
            rule__JAVAID__Group_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__JAVAID__Group_1__1_in_rule__JAVAID__Group_1__02232);
            rule__JAVAID__Group_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group_1__0"


    // $ANTLR start "rule__JAVAID__Group_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1104:1: rule__JAVAID__Group_1__0__Impl : ( '.' ) ;
    public final void rule__JAVAID__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1108:1: ( ( '.' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1109:1: ( '.' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1109:1: ( '.' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1110:1: '.'
            {
             before(grammarAccess.getJAVAIDAccess().getFullStopKeyword_1_0()); 
            match(input,17,FOLLOW_17_in_rule__JAVAID__Group_1__0__Impl2260); 
             after(grammarAccess.getJAVAIDAccess().getFullStopKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group_1__0__Impl"


    // $ANTLR start "rule__JAVAID__Group_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1123:1: rule__JAVAID__Group_1__1 : rule__JAVAID__Group_1__1__Impl ;
    public final void rule__JAVAID__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1127:1: ( rule__JAVAID__Group_1__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1128:2: rule__JAVAID__Group_1__1__Impl
            {
            pushFollow(FOLLOW_rule__JAVAID__Group_1__1__Impl_in_rule__JAVAID__Group_1__12291);
            rule__JAVAID__Group_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group_1__1"


    // $ANTLR start "rule__JAVAID__Group_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1134:1: rule__JAVAID__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__JAVAID__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1138:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1139:1: ( RULE_ID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1139:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1140:1: RULE_ID
            {
             before(grammarAccess.getJAVAIDAccess().getIDTerminalRuleCall_1_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__JAVAID__Group_1__1__Impl2318); 
             after(grammarAccess.getJAVAIDAccess().getIDTerminalRuleCall_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__JAVAID__Group_1__1__Impl"


    // $ANTLR start "rule__Entity__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1155:1: rule__Entity__Group__0 : rule__Entity__Group__0__Impl rule__Entity__Group__1 ;
    public final void rule__Entity__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1159:1: ( rule__Entity__Group__0__Impl rule__Entity__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1160:2: rule__Entity__Group__0__Impl rule__Entity__Group__1
            {
            pushFollow(FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__02351);
            rule__Entity__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__02354);
            rule__Entity__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__0"


    // $ANTLR start "rule__Entity__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1167:1: rule__Entity__Group__0__Impl : ( 'entity' ) ;
    public final void rule__Entity__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1171:1: ( ( 'entity' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1172:1: ( 'entity' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1172:1: ( 'entity' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1173:1: 'entity'
            {
             before(grammarAccess.getEntityAccess().getEntityKeyword_0()); 
            match(input,18,FOLLOW_18_in_rule__Entity__Group__0__Impl2382); 
             after(grammarAccess.getEntityAccess().getEntityKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__0__Impl"


    // $ANTLR start "rule__Entity__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1186:1: rule__Entity__Group__1 : rule__Entity__Group__1__Impl rule__Entity__Group__2 ;
    public final void rule__Entity__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1190:1: ( rule__Entity__Group__1__Impl rule__Entity__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1191:2: rule__Entity__Group__1__Impl rule__Entity__Group__2
            {
            pushFollow(FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__12413);
            rule__Entity__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__12416);
            rule__Entity__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__1"


    // $ANTLR start "rule__Entity__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1198:1: rule__Entity__Group__1__Impl : ( ( rule__Entity__NameAssignment_1 ) ) ;
    public final void rule__Entity__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1202:1: ( ( ( rule__Entity__NameAssignment_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1203:1: ( ( rule__Entity__NameAssignment_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1203:1: ( ( rule__Entity__NameAssignment_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1204:1: ( rule__Entity__NameAssignment_1 )
            {
             before(grammarAccess.getEntityAccess().getNameAssignment_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1205:1: ( rule__Entity__NameAssignment_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1205:2: rule__Entity__NameAssignment_1
            {
            pushFollow(FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl2443);
            rule__Entity__NameAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getNameAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__1__Impl"


    // $ANTLR start "rule__Entity__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1215:1: rule__Entity__Group__2 : rule__Entity__Group__2__Impl rule__Entity__Group__3 ;
    public final void rule__Entity__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1219:1: ( rule__Entity__Group__2__Impl rule__Entity__Group__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1220:2: rule__Entity__Group__2__Impl rule__Entity__Group__3
            {
            pushFollow(FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__22473);
            rule__Entity__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__22476);
            rule__Entity__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__2"


    // $ANTLR start "rule__Entity__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1227:1: rule__Entity__Group__2__Impl : ( ( rule__Entity__Group_2__0 )? ) ;
    public final void rule__Entity__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1231:1: ( ( ( rule__Entity__Group_2__0 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1232:1: ( ( rule__Entity__Group_2__0 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1232:1: ( ( rule__Entity__Group_2__0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1233:1: ( rule__Entity__Group_2__0 )?
            {
             before(grammarAccess.getEntityAccess().getGroup_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1234:1: ( rule__Entity__Group_2__0 )?
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==19) ) {
                alt10=1;
            }
            switch (alt10) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1234:2: rule__Entity__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl2503);
                    rule__Entity__Group_2__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getEntityAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__2__Impl"


    // $ANTLR start "rule__Entity__Group__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1244:1: rule__Entity__Group__3 : rule__Entity__Group__3__Impl rule__Entity__Group__4 ;
    public final void rule__Entity__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1248:1: ( rule__Entity__Group__3__Impl rule__Entity__Group__4 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1249:2: rule__Entity__Group__3__Impl rule__Entity__Group__4
            {
            pushFollow(FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__32534);
            rule__Entity__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__32537);
            rule__Entity__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__3"


    // $ANTLR start "rule__Entity__Group__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1256:1: rule__Entity__Group__3__Impl : ( '{' ) ;
    public final void rule__Entity__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1260:1: ( ( '{' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1261:1: ( '{' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1261:1: ( '{' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1262:1: '{'
            {
             before(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 
            match(input,13,FOLLOW_13_in_rule__Entity__Group__3__Impl2565); 
             after(grammarAccess.getEntityAccess().getLeftCurlyBracketKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__3__Impl"


    // $ANTLR start "rule__Entity__Group__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1275:1: rule__Entity__Group__4 : rule__Entity__Group__4__Impl rule__Entity__Group__5 ;
    public final void rule__Entity__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1279:1: ( rule__Entity__Group__4__Impl rule__Entity__Group__5 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1280:2: rule__Entity__Group__4__Impl rule__Entity__Group__5
            {
            pushFollow(FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__42596);
            rule__Entity__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__42599);
            rule__Entity__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__4"


    // $ANTLR start "rule__Entity__Group__4__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1287:1: rule__Entity__Group__4__Impl : ( ( rule__Entity__AttributesAssignment_4 )* ) ;
    public final void rule__Entity__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1291:1: ( ( ( rule__Entity__AttributesAssignment_4 )* ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1292:1: ( ( rule__Entity__AttributesAssignment_4 )* )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1292:1: ( ( rule__Entity__AttributesAssignment_4 )* )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1293:1: ( rule__Entity__AttributesAssignment_4 )*
            {
             before(grammarAccess.getEntityAccess().getAttributesAssignment_4()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1294:1: ( rule__Entity__AttributesAssignment_4 )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( (LA11_0==RULE_ID||(LA11_0>=34 && LA11_0<=35)) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1294:2: rule__Entity__AttributesAssignment_4
            	    {
            	    pushFollow(FOLLOW_rule__Entity__AttributesAssignment_4_in_rule__Entity__Group__4__Impl2626);
            	    rule__Entity__AttributesAssignment_4();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

             after(grammarAccess.getEntityAccess().getAttributesAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__4__Impl"


    // $ANTLR start "rule__Entity__Group__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1304:1: rule__Entity__Group__5 : rule__Entity__Group__5__Impl ;
    public final void rule__Entity__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1308:1: ( rule__Entity__Group__5__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1309:2: rule__Entity__Group__5__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__52657);
            rule__Entity__Group__5__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__5"


    // $ANTLR start "rule__Entity__Group__5__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1315:1: rule__Entity__Group__5__Impl : ( '}' ) ;
    public final void rule__Entity__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1319:1: ( ( '}' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1320:1: ( '}' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1320:1: ( '}' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1321:1: '}'
            {
             before(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 
            match(input,14,FOLLOW_14_in_rule__Entity__Group__5__Impl2685); 
             after(grammarAccess.getEntityAccess().getRightCurlyBracketKeyword_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group__5__Impl"


    // $ANTLR start "rule__Entity__Group_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1346:1: rule__Entity__Group_2__0 : rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 ;
    public final void rule__Entity__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1350:1: ( rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1351:2: rule__Entity__Group_2__0__Impl rule__Entity__Group_2__1
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__02728);
            rule__Entity__Group_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__02731);
            rule__Entity__Group_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__0"


    // $ANTLR start "rule__Entity__Group_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1358:1: rule__Entity__Group_2__0__Impl : ( 'extends' ) ;
    public final void rule__Entity__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1362:1: ( ( 'extends' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1363:1: ( 'extends' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1363:1: ( 'extends' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1364:1: 'extends'
            {
             before(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 
            match(input,19,FOLLOW_19_in_rule__Entity__Group_2__0__Impl2759); 
             after(grammarAccess.getEntityAccess().getExtendsKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__0__Impl"


    // $ANTLR start "rule__Entity__Group_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1377:1: rule__Entity__Group_2__1 : rule__Entity__Group_2__1__Impl ;
    public final void rule__Entity__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1381:1: ( rule__Entity__Group_2__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1382:2: rule__Entity__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__12790);
            rule__Entity__Group_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__1"


    // $ANTLR start "rule__Entity__Group_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1388:1: rule__Entity__Group_2__1__Impl : ( ( rule__Entity__SuperEntityAssignment_2_1 ) ) ;
    public final void rule__Entity__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1392:1: ( ( ( rule__Entity__SuperEntityAssignment_2_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1393:1: ( ( rule__Entity__SuperEntityAssignment_2_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1393:1: ( ( rule__Entity__SuperEntityAssignment_2_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1394:1: ( rule__Entity__SuperEntityAssignment_2_1 )
            {
             before(grammarAccess.getEntityAccess().getSuperEntityAssignment_2_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1395:1: ( rule__Entity__SuperEntityAssignment_2_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1395:2: rule__Entity__SuperEntityAssignment_2_1
            {
            pushFollow(FOLLOW_rule__Entity__SuperEntityAssignment_2_1_in_rule__Entity__Group_2__1__Impl2817);
            rule__Entity__SuperEntityAssignment_2_1();

            state._fsp--;


            }

             after(grammarAccess.getEntityAccess().getSuperEntityAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__Group_2__1__Impl"


    // $ANTLR start "rule__Attribute__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1409:1: rule__Attribute__Group__0 : rule__Attribute__Group__0__Impl rule__Attribute__Group__1 ;
    public final void rule__Attribute__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1413:1: ( rule__Attribute__Group__0__Impl rule__Attribute__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1414:2: rule__Attribute__Group__0__Impl rule__Attribute__Group__1
            {
            pushFollow(FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__02851);
            rule__Attribute__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__02854);
            rule__Attribute__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__0"


    // $ANTLR start "rule__Attribute__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1421:1: rule__Attribute__Group__0__Impl : ( ( rule__Attribute__Alternatives_0 )? ) ;
    public final void rule__Attribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1425:1: ( ( ( rule__Attribute__Alternatives_0 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1426:1: ( ( rule__Attribute__Alternatives_0 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1426:1: ( ( rule__Attribute__Alternatives_0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1427:1: ( rule__Attribute__Alternatives_0 )?
            {
             before(grammarAccess.getAttributeAccess().getAlternatives_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1428:1: ( rule__Attribute__Alternatives_0 )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( ((LA12_0>=34 && LA12_0<=35)) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1428:2: rule__Attribute__Alternatives_0
                    {
                    pushFollow(FOLLOW_rule__Attribute__Alternatives_0_in_rule__Attribute__Group__0__Impl2881);
                    rule__Attribute__Alternatives_0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getAttributeAccess().getAlternatives_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__0__Impl"


    // $ANTLR start "rule__Attribute__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1438:1: rule__Attribute__Group__1 : rule__Attribute__Group__1__Impl rule__Attribute__Group__2 ;
    public final void rule__Attribute__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1442:1: ( rule__Attribute__Group__1__Impl rule__Attribute__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1443:2: rule__Attribute__Group__1__Impl rule__Attribute__Group__2
            {
            pushFollow(FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__12912);
            rule__Attribute__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__12915);
            rule__Attribute__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__1"


    // $ANTLR start "rule__Attribute__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1450:1: rule__Attribute__Group__1__Impl : ( ( rule__Attribute__TypeAssignment_1 ) ) ;
    public final void rule__Attribute__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1454:1: ( ( ( rule__Attribute__TypeAssignment_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1455:1: ( ( rule__Attribute__TypeAssignment_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1455:1: ( ( rule__Attribute__TypeAssignment_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1456:1: ( rule__Attribute__TypeAssignment_1 )
            {
             before(grammarAccess.getAttributeAccess().getTypeAssignment_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1457:1: ( rule__Attribute__TypeAssignment_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1457:2: rule__Attribute__TypeAssignment_1
            {
            pushFollow(FOLLOW_rule__Attribute__TypeAssignment_1_in_rule__Attribute__Group__1__Impl2942);
            rule__Attribute__TypeAssignment_1();

            state._fsp--;


            }

             after(grammarAccess.getAttributeAccess().getTypeAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__1__Impl"


    // $ANTLR start "rule__Attribute__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1467:1: rule__Attribute__Group__2 : rule__Attribute__Group__2__Impl rule__Attribute__Group__3 ;
    public final void rule__Attribute__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1471:1: ( rule__Attribute__Group__2__Impl rule__Attribute__Group__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1472:2: rule__Attribute__Group__2__Impl rule__Attribute__Group__3
            {
            pushFollow(FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__22972);
            rule__Attribute__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__22975);
            rule__Attribute__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__2"


    // $ANTLR start "rule__Attribute__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1479:1: rule__Attribute__Group__2__Impl : ( ( rule__Attribute__NameAssignment_2 ) ) ;
    public final void rule__Attribute__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1483:1: ( ( ( rule__Attribute__NameAssignment_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1484:1: ( ( rule__Attribute__NameAssignment_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1484:1: ( ( rule__Attribute__NameAssignment_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1485:1: ( rule__Attribute__NameAssignment_2 )
            {
             before(grammarAccess.getAttributeAccess().getNameAssignment_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1486:1: ( rule__Attribute__NameAssignment_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1486:2: rule__Attribute__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__Attribute__NameAssignment_2_in_rule__Attribute__Group__2__Impl3002);
            rule__Attribute__NameAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getAttributeAccess().getNameAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__2__Impl"


    // $ANTLR start "rule__Attribute__Group__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1496:1: rule__Attribute__Group__3 : rule__Attribute__Group__3__Impl ;
    public final void rule__Attribute__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1500:1: ( rule__Attribute__Group__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1501:2: rule__Attribute__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__33032);
            rule__Attribute__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__3"


    // $ANTLR start "rule__Attribute__Group__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1507:1: rule__Attribute__Group__3__Impl : ( ( rule__Attribute__FlagsAssignment_3 )? ) ;
    public final void rule__Attribute__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1511:1: ( ( ( rule__Attribute__FlagsAssignment_3 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1512:1: ( ( rule__Attribute__FlagsAssignment_3 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1512:1: ( ( rule__Attribute__FlagsAssignment_3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1513:1: ( rule__Attribute__FlagsAssignment_3 )?
            {
             before(grammarAccess.getAttributeAccess().getFlagsAssignment_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1514:1: ( rule__Attribute__FlagsAssignment_3 )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==36) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1514:2: rule__Attribute__FlagsAssignment_3
                    {
                    pushFollow(FOLLOW_rule__Attribute__FlagsAssignment_3_in_rule__Attribute__Group__3__Impl3059);
                    rule__Attribute__FlagsAssignment_3();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getAttributeAccess().getFlagsAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__Group__3__Impl"


    // $ANTLR start "rule__Flags__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1532:1: rule__Flags__Group__0 : rule__Flags__Group__0__Impl rule__Flags__Group__1 ;
    public final void rule__Flags__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1536:1: ( rule__Flags__Group__0__Impl rule__Flags__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1537:2: rule__Flags__Group__0__Impl rule__Flags__Group__1
            {
            pushFollow(FOLLOW_rule__Flags__Group__0__Impl_in_rule__Flags__Group__03098);
            rule__Flags__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Flags__Group__1_in_rule__Flags__Group__03101);
            rule__Flags__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Flags__Group__0"


    // $ANTLR start "rule__Flags__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1544:1: rule__Flags__Group__0__Impl : ( ( rule__Flags__IdAssignment_0 ) ) ;
    public final void rule__Flags__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1548:1: ( ( ( rule__Flags__IdAssignment_0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1549:1: ( ( rule__Flags__IdAssignment_0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1549:1: ( ( rule__Flags__IdAssignment_0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1550:1: ( rule__Flags__IdAssignment_0 )
            {
             before(grammarAccess.getFlagsAccess().getIdAssignment_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1551:1: ( rule__Flags__IdAssignment_0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1551:2: rule__Flags__IdAssignment_0
            {
            pushFollow(FOLLOW_rule__Flags__IdAssignment_0_in_rule__Flags__Group__0__Impl3128);
            rule__Flags__IdAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getFlagsAccess().getIdAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Flags__Group__0__Impl"


    // $ANTLR start "rule__Flags__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1561:1: rule__Flags__Group__1 : rule__Flags__Group__1__Impl ;
    public final void rule__Flags__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1565:1: ( rule__Flags__Group__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1566:2: rule__Flags__Group__1__Impl
            {
            pushFollow(FOLLOW_rule__Flags__Group__1__Impl_in_rule__Flags__Group__13158);
            rule__Flags__Group__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Flags__Group__1"


    // $ANTLR start "rule__Flags__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1572:1: rule__Flags__Group__1__Impl : ( ( rule__Flags__AutoidAssignment_1 )? ) ;
    public final void rule__Flags__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1576:1: ( ( ( rule__Flags__AutoidAssignment_1 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1577:1: ( ( rule__Flags__AutoidAssignment_1 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1577:1: ( ( rule__Flags__AutoidAssignment_1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1578:1: ( rule__Flags__AutoidAssignment_1 )?
            {
             before(grammarAccess.getFlagsAccess().getAutoidAssignment_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1579:1: ( rule__Flags__AutoidAssignment_1 )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==37) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1579:2: rule__Flags__AutoidAssignment_1
                    {
                    pushFollow(FOLLOW_rule__Flags__AutoidAssignment_1_in_rule__Flags__Group__1__Impl3185);
                    rule__Flags__AutoidAssignment_1();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getFlagsAccess().getAutoidAssignment_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Flags__Group__1__Impl"


    // $ANTLR start "rule__Connection__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1593:1: rule__Connection__Group__0 : rule__Connection__Group__0__Impl rule__Connection__Group__1 ;
    public final void rule__Connection__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1597:1: ( rule__Connection__Group__0__Impl rule__Connection__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1598:2: rule__Connection__Group__0__Impl rule__Connection__Group__1
            {
            pushFollow(FOLLOW_rule__Connection__Group__0__Impl_in_rule__Connection__Group__03220);
            rule__Connection__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group__1_in_rule__Connection__Group__03223);
            rule__Connection__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__0"


    // $ANTLR start "rule__Connection__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1605:1: rule__Connection__Group__0__Impl : ( 'create-connection' ) ;
    public final void rule__Connection__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1609:1: ( ( 'create-connection' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1610:1: ( 'create-connection' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1610:1: ( 'create-connection' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1611:1: 'create-connection'
            {
             before(grammarAccess.getConnectionAccess().getCreateConnectionKeyword_0()); 
            match(input,20,FOLLOW_20_in_rule__Connection__Group__0__Impl3251); 
             after(grammarAccess.getConnectionAccess().getCreateConnectionKeyword_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__0__Impl"


    // $ANTLR start "rule__Connection__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1624:1: rule__Connection__Group__1 : rule__Connection__Group__1__Impl rule__Connection__Group__2 ;
    public final void rule__Connection__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1628:1: ( rule__Connection__Group__1__Impl rule__Connection__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1629:2: rule__Connection__Group__1__Impl rule__Connection__Group__2
            {
            pushFollow(FOLLOW_rule__Connection__Group__1__Impl_in_rule__Connection__Group__13282);
            rule__Connection__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group__2_in_rule__Connection__Group__13285);
            rule__Connection__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__1"


    // $ANTLR start "rule__Connection__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1636:1: rule__Connection__Group__1__Impl : ( '(' ) ;
    public final void rule__Connection__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1640:1: ( ( '(' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1641:1: ( '(' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1641:1: ( '(' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1642:1: '('
            {
             before(grammarAccess.getConnectionAccess().getLeftParenthesisKeyword_1()); 
            match(input,21,FOLLOW_21_in_rule__Connection__Group__1__Impl3313); 
             after(grammarAccess.getConnectionAccess().getLeftParenthesisKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__1__Impl"


    // $ANTLR start "rule__Connection__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1655:1: rule__Connection__Group__2 : rule__Connection__Group__2__Impl rule__Connection__Group__3 ;
    public final void rule__Connection__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1659:1: ( rule__Connection__Group__2__Impl rule__Connection__Group__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1660:2: rule__Connection__Group__2__Impl rule__Connection__Group__3
            {
            pushFollow(FOLLOW_rule__Connection__Group__2__Impl_in_rule__Connection__Group__23344);
            rule__Connection__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group__3_in_rule__Connection__Group__23347);
            rule__Connection__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__2"


    // $ANTLR start "rule__Connection__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1667:1: rule__Connection__Group__2__Impl : ( ( rule__Connection__Alternatives_2 ) ) ;
    public final void rule__Connection__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1671:1: ( ( ( rule__Connection__Alternatives_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1672:1: ( ( rule__Connection__Alternatives_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1672:1: ( ( rule__Connection__Alternatives_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1673:1: ( rule__Connection__Alternatives_2 )
            {
             before(grammarAccess.getConnectionAccess().getAlternatives_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1674:1: ( rule__Connection__Alternatives_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1674:2: rule__Connection__Alternatives_2
            {
            pushFollow(FOLLOW_rule__Connection__Alternatives_2_in_rule__Connection__Group__2__Impl3374);
            rule__Connection__Alternatives_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getAlternatives_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__2__Impl"


    // $ANTLR start "rule__Connection__Group__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1684:1: rule__Connection__Group__3 : rule__Connection__Group__3__Impl ;
    public final void rule__Connection__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1688:1: ( rule__Connection__Group__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1689:2: rule__Connection__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group__3__Impl_in_rule__Connection__Group__33404);
            rule__Connection__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__3"


    // $ANTLR start "rule__Connection__Group__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1695:1: rule__Connection__Group__3__Impl : ( ')' ) ;
    public final void rule__Connection__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1699:1: ( ( ')' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1700:1: ( ')' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1700:1: ( ')' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1701:1: ')'
            {
             before(grammarAccess.getConnectionAccess().getRightParenthesisKeyword_3()); 
            match(input,22,FOLLOW_22_in_rule__Connection__Group__3__Impl3432); 
             after(grammarAccess.getConnectionAccess().getRightParenthesisKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1722:1: rule__Connection__Group_2_0__0 : rule__Connection__Group_2_0__0__Impl rule__Connection__Group_2_0__1 ;
    public final void rule__Connection__Group_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1726:1: ( rule__Connection__Group_2_0__0__Impl rule__Connection__Group_2_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1727:2: rule__Connection__Group_2_0__0__Impl rule__Connection__Group_2_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0__0__Impl_in_rule__Connection__Group_2_0__03471);
            rule__Connection__Group_2_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0__1_in_rule__Connection__Group_2_0__03474);
            rule__Connection__Group_2_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0__0"


    // $ANTLR start "rule__Connection__Group_2_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1734:1: rule__Connection__Group_2_0__0__Impl : ( ( rule__Connection__Group_2_0_0__0 ) ) ;
    public final void rule__Connection__Group_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1738:1: ( ( ( rule__Connection__Group_2_0_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1739:1: ( ( rule__Connection__Group_2_0_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1739:1: ( ( rule__Connection__Group_2_0_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1740:1: ( rule__Connection__Group_2_0_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_0_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1741:1: ( rule__Connection__Group_2_0_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1741:2: rule__Connection__Group_2_0_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_0__0_in_rule__Connection__Group_2_0__0__Impl3501);
            rule__Connection__Group_2_0_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1751:1: rule__Connection__Group_2_0__1 : rule__Connection__Group_2_0__1__Impl ;
    public final void rule__Connection__Group_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1755:1: ( rule__Connection__Group_2_0__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1756:2: rule__Connection__Group_2_0__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0__1__Impl_in_rule__Connection__Group_2_0__13531);
            rule__Connection__Group_2_0__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0__1"


    // $ANTLR start "rule__Connection__Group_2_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1762:1: rule__Connection__Group_2_0__1__Impl : ( ( rule__Connection__UnorderedGroup_2_0_1 ) ) ;
    public final void rule__Connection__Group_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1766:1: ( ( ( rule__Connection__UnorderedGroup_2_0_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1767:1: ( ( rule__Connection__UnorderedGroup_2_0_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1767:1: ( ( rule__Connection__UnorderedGroup_2_0_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1768:1: ( rule__Connection__UnorderedGroup_2_0_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1769:1: ( rule__Connection__UnorderedGroup_2_0_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1769:2: rule__Connection__UnorderedGroup_2_0_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1_in_rule__Connection__Group_2_0__1__Impl3558);
            rule__Connection__UnorderedGroup_2_0_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1783:1: rule__Connection__Group_2_0_0__0 : rule__Connection__Group_2_0_0__0__Impl rule__Connection__Group_2_0_0__1 ;
    public final void rule__Connection__Group_2_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1787:1: ( rule__Connection__Group_2_0_0__0__Impl rule__Connection__Group_2_0_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1788:2: rule__Connection__Group_2_0_0__0__Impl rule__Connection__Group_2_0_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_0__0__Impl_in_rule__Connection__Group_2_0_0__03592);
            rule__Connection__Group_2_0_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_0__1_in_rule__Connection__Group_2_0_0__03595);
            rule__Connection__Group_2_0_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_0__0"


    // $ANTLR start "rule__Connection__Group_2_0_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1795:1: rule__Connection__Group_2_0_0__0__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1799:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1800:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1800:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1801:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_0_0_0()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_0_0__0__Impl3623); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_0_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1814:1: rule__Connection__Group_2_0_0__1 : rule__Connection__Group_2_0_0__1__Impl rule__Connection__Group_2_0_0__2 ;
    public final void rule__Connection__Group_2_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1818:1: ( rule__Connection__Group_2_0_0__1__Impl rule__Connection__Group_2_0_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1819:2: rule__Connection__Group_2_0_0__1__Impl rule__Connection__Group_2_0_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_0__1__Impl_in_rule__Connection__Group_2_0_0__13654);
            rule__Connection__Group_2_0_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_0__2_in_rule__Connection__Group_2_0_0__13657);
            rule__Connection__Group_2_0_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_0__1"


    // $ANTLR start "rule__Connection__Group_2_0_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1826:1: rule__Connection__Group_2_0_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1830:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1831:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1831:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1832:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_0__1__Impl3685); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1845:1: rule__Connection__Group_2_0_0__2 : rule__Connection__Group_2_0_0__2__Impl ;
    public final void rule__Connection__Group_2_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1849:1: ( rule__Connection__Group_2_0_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1850:2: rule__Connection__Group_2_0_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_0__2__Impl_in_rule__Connection__Group_2_0_0__23716);
            rule__Connection__Group_2_0_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_0__2"


    // $ANTLR start "rule__Connection__Group_2_0_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1856:1: rule__Connection__Group_2_0_0__2__Impl : ( ( rule__Connection__TypeAssignment_2_0_0_2 ) ) ;
    public final void rule__Connection__Group_2_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1860:1: ( ( ( rule__Connection__TypeAssignment_2_0_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1861:1: ( ( rule__Connection__TypeAssignment_2_0_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1861:1: ( ( rule__Connection__TypeAssignment_2_0_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1862:1: ( rule__Connection__TypeAssignment_2_0_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_0_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1863:1: ( rule__Connection__TypeAssignment_2_0_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1863:2: rule__Connection__TypeAssignment_2_0_0_2
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_0_0_2_in_rule__Connection__Group_2_0_0__2__Impl3743);
            rule__Connection__TypeAssignment_2_0_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_0_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1879:1: rule__Connection__Group_2_0_1_0__0 : rule__Connection__Group_2_0_1_0__0__Impl rule__Connection__Group_2_0_1_0__1 ;
    public final void rule__Connection__Group_2_0_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1883:1: ( rule__Connection__Group_2_0_1_0__0__Impl rule__Connection__Group_2_0_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1884:2: rule__Connection__Group_2_0_1_0__0__Impl rule__Connection__Group_2_0_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__0__Impl_in_rule__Connection__Group_2_0_1_0__03779);
            rule__Connection__Group_2_0_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__1_in_rule__Connection__Group_2_0_1_0__03782);
            rule__Connection__Group_2_0_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1891:1: rule__Connection__Group_2_0_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_0_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1895:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1896:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1896:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1897:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_0_1_0__0__Impl3810); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1910:1: rule__Connection__Group_2_0_1_0__1 : rule__Connection__Group_2_0_1_0__1__Impl rule__Connection__Group_2_0_1_0__2 ;
    public final void rule__Connection__Group_2_0_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1914:1: ( rule__Connection__Group_2_0_1_0__1__Impl rule__Connection__Group_2_0_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1915:2: rule__Connection__Group_2_0_1_0__1__Impl rule__Connection__Group_2_0_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__1__Impl_in_rule__Connection__Group_2_0_1_0__13841);
            rule__Connection__Group_2_0_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__2_in_rule__Connection__Group_2_0_1_0__13844);
            rule__Connection__Group_2_0_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1922:1: rule__Connection__Group_2_0_1_0__1__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_0_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1926:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1927:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1927:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1928:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_0_1_0_1()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_0_1_0__1__Impl3872); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_0_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1941:1: rule__Connection__Group_2_0_1_0__2 : rule__Connection__Group_2_0_1_0__2__Impl rule__Connection__Group_2_0_1_0__3 ;
    public final void rule__Connection__Group_2_0_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1945:1: ( rule__Connection__Group_2_0_1_0__2__Impl rule__Connection__Group_2_0_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1946:2: rule__Connection__Group_2_0_1_0__2__Impl rule__Connection__Group_2_0_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__2__Impl_in_rule__Connection__Group_2_0_1_0__23903);
            rule__Connection__Group_2_0_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__3_in_rule__Connection__Group_2_0_1_0__23906);
            rule__Connection__Group_2_0_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1953:1: rule__Connection__Group_2_0_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1957:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1958:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1958:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1959:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_1_0__2__Impl3934); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1972:1: rule__Connection__Group_2_0_1_0__3 : rule__Connection__Group_2_0_1_0__3__Impl ;
    public final void rule__Connection__Group_2_0_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1976:1: ( rule__Connection__Group_2_0_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1977:2: rule__Connection__Group_2_0_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__3__Impl_in_rule__Connection__Group_2_0_1_0__33965);
            rule__Connection__Group_2_0_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_0_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1983:1: rule__Connection__Group_2_0_1_0__3__Impl : ( ( rule__Connection__DbnameAssignment_2_0_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_0_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1987:1: ( ( ( rule__Connection__DbnameAssignment_2_0_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1988:1: ( ( rule__Connection__DbnameAssignment_2_0_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1988:1: ( ( rule__Connection__DbnameAssignment_2_0_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1989:1: ( rule__Connection__DbnameAssignment_2_0_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_0_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1990:1: ( rule__Connection__DbnameAssignment_2_0_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:1990:2: rule__Connection__DbnameAssignment_2_0_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_0_1_0_3_in_rule__Connection__Group_2_0_1_0__3__Impl3992);
            rule__Connection__DbnameAssignment_2_0_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_0_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2008:1: rule__Connection__Group_2_0_1_1__0 : rule__Connection__Group_2_0_1_1__0__Impl rule__Connection__Group_2_0_1_1__1 ;
    public final void rule__Connection__Group_2_0_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2012:1: ( rule__Connection__Group_2_0_1_1__0__Impl rule__Connection__Group_2_0_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2013:2: rule__Connection__Group_2_0_1_1__0__Impl rule__Connection__Group_2_0_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__0__Impl_in_rule__Connection__Group_2_0_1_1__04030);
            rule__Connection__Group_2_0_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__1_in_rule__Connection__Group_2_0_1_1__04033);
            rule__Connection__Group_2_0_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2020:1: rule__Connection__Group_2_0_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_0_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2024:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2025:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2025:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2026:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_0_1_1__0__Impl4061); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2039:1: rule__Connection__Group_2_0_1_1__1 : rule__Connection__Group_2_0_1_1__1__Impl rule__Connection__Group_2_0_1_1__2 ;
    public final void rule__Connection__Group_2_0_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2043:1: ( rule__Connection__Group_2_0_1_1__1__Impl rule__Connection__Group_2_0_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2044:2: rule__Connection__Group_2_0_1_1__1__Impl rule__Connection__Group_2_0_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__1__Impl_in_rule__Connection__Group_2_0_1_1__14092);
            rule__Connection__Group_2_0_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__2_in_rule__Connection__Group_2_0_1_1__14095);
            rule__Connection__Group_2_0_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2051:1: rule__Connection__Group_2_0_1_1__1__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_0_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2055:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2056:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2056:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2057:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_0_1_1_1()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_0_1_1__1__Impl4123); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_0_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2070:1: rule__Connection__Group_2_0_1_1__2 : rule__Connection__Group_2_0_1_1__2__Impl rule__Connection__Group_2_0_1_1__3 ;
    public final void rule__Connection__Group_2_0_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2074:1: ( rule__Connection__Group_2_0_1_1__2__Impl rule__Connection__Group_2_0_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2075:2: rule__Connection__Group_2_0_1_1__2__Impl rule__Connection__Group_2_0_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__2__Impl_in_rule__Connection__Group_2_0_1_1__24154);
            rule__Connection__Group_2_0_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__3_in_rule__Connection__Group_2_0_1_1__24157);
            rule__Connection__Group_2_0_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2082:1: rule__Connection__Group_2_0_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2086:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2087:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2087:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2088:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_1_1__2__Impl4185); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2101:1: rule__Connection__Group_2_0_1_1__3 : rule__Connection__Group_2_0_1_1__3__Impl ;
    public final void rule__Connection__Group_2_0_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2105:1: ( rule__Connection__Group_2_0_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2106:2: rule__Connection__Group_2_0_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__3__Impl_in_rule__Connection__Group_2_0_1_1__34216);
            rule__Connection__Group_2_0_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_0_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2112:1: rule__Connection__Group_2_0_1_1__3__Impl : ( ( rule__Connection__UserAssignment_2_0_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_0_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2116:1: ( ( ( rule__Connection__UserAssignment_2_0_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2117:1: ( ( rule__Connection__UserAssignment_2_0_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2117:1: ( ( rule__Connection__UserAssignment_2_0_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2118:1: ( rule__Connection__UserAssignment_2_0_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_0_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2119:1: ( rule__Connection__UserAssignment_2_0_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2119:2: rule__Connection__UserAssignment_2_0_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_0_1_1_3_in_rule__Connection__Group_2_0_1_1__3__Impl4243);
            rule__Connection__UserAssignment_2_0_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_0_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2137:1: rule__Connection__Group_2_0_1_2__0 : rule__Connection__Group_2_0_1_2__0__Impl rule__Connection__Group_2_0_1_2__1 ;
    public final void rule__Connection__Group_2_0_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2141:1: ( rule__Connection__Group_2_0_1_2__0__Impl rule__Connection__Group_2_0_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2142:2: rule__Connection__Group_2_0_1_2__0__Impl rule__Connection__Group_2_0_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__0__Impl_in_rule__Connection__Group_2_0_1_2__04281);
            rule__Connection__Group_2_0_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__1_in_rule__Connection__Group_2_0_1_2__04284);
            rule__Connection__Group_2_0_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2149:1: rule__Connection__Group_2_0_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_0_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2153:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2154:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2154:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2155:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_0_1_2__0__Impl4312); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2168:1: rule__Connection__Group_2_0_1_2__1 : rule__Connection__Group_2_0_1_2__1__Impl rule__Connection__Group_2_0_1_2__2 ;
    public final void rule__Connection__Group_2_0_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2172:1: ( rule__Connection__Group_2_0_1_2__1__Impl rule__Connection__Group_2_0_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2173:2: rule__Connection__Group_2_0_1_2__1__Impl rule__Connection__Group_2_0_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__1__Impl_in_rule__Connection__Group_2_0_1_2__14343);
            rule__Connection__Group_2_0_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__2_in_rule__Connection__Group_2_0_1_2__14346);
            rule__Connection__Group_2_0_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2180:1: rule__Connection__Group_2_0_1_2__1__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_0_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2184:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2185:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2185:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2186:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_0_1_2_1()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_0_1_2__1__Impl4374); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_0_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2199:1: rule__Connection__Group_2_0_1_2__2 : rule__Connection__Group_2_0_1_2__2__Impl rule__Connection__Group_2_0_1_2__3 ;
    public final void rule__Connection__Group_2_0_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2203:1: ( rule__Connection__Group_2_0_1_2__2__Impl rule__Connection__Group_2_0_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2204:2: rule__Connection__Group_2_0_1_2__2__Impl rule__Connection__Group_2_0_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__2__Impl_in_rule__Connection__Group_2_0_1_2__24405);
            rule__Connection__Group_2_0_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__3_in_rule__Connection__Group_2_0_1_2__24408);
            rule__Connection__Group_2_0_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2211:1: rule__Connection__Group_2_0_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2215:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2216:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2216:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2217:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_1_2__2__Impl4436); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2230:1: rule__Connection__Group_2_0_1_2__3 : rule__Connection__Group_2_0_1_2__3__Impl ;
    public final void rule__Connection__Group_2_0_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2234:1: ( rule__Connection__Group_2_0_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2235:2: rule__Connection__Group_2_0_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__3__Impl_in_rule__Connection__Group_2_0_1_2__34467);
            rule__Connection__Group_2_0_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_0_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2241:1: rule__Connection__Group_2_0_1_2__3__Impl : ( ( rule__Connection__PasswordAssignment_2_0_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_0_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2245:1: ( ( ( rule__Connection__PasswordAssignment_2_0_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2246:1: ( ( rule__Connection__PasswordAssignment_2_0_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2246:1: ( ( rule__Connection__PasswordAssignment_2_0_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2247:1: ( rule__Connection__PasswordAssignment_2_0_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_0_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2248:1: ( rule__Connection__PasswordAssignment_2_0_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2248:2: rule__Connection__PasswordAssignment_2_0_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_0_1_2_3_in_rule__Connection__Group_2_0_1_2__3__Impl4494);
            rule__Connection__PasswordAssignment_2_0_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_0_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2266:1: rule__Connection__Group_2_0_1_3__0 : rule__Connection__Group_2_0_1_3__0__Impl rule__Connection__Group_2_0_1_3__1 ;
    public final void rule__Connection__Group_2_0_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2270:1: ( rule__Connection__Group_2_0_1_3__0__Impl rule__Connection__Group_2_0_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2271:2: rule__Connection__Group_2_0_1_3__0__Impl rule__Connection__Group_2_0_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__0__Impl_in_rule__Connection__Group_2_0_1_3__04532);
            rule__Connection__Group_2_0_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__1_in_rule__Connection__Group_2_0_1_3__04535);
            rule__Connection__Group_2_0_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2278:1: rule__Connection__Group_2_0_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_0_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2282:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2283:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2283:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2284:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_0_1_3__0__Impl4563); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2297:1: rule__Connection__Group_2_0_1_3__1 : rule__Connection__Group_2_0_1_3__1__Impl rule__Connection__Group_2_0_1_3__2 ;
    public final void rule__Connection__Group_2_0_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2301:1: ( rule__Connection__Group_2_0_1_3__1__Impl rule__Connection__Group_2_0_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2302:2: rule__Connection__Group_2_0_1_3__1__Impl rule__Connection__Group_2_0_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__1__Impl_in_rule__Connection__Group_2_0_1_3__14594);
            rule__Connection__Group_2_0_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__2_in_rule__Connection__Group_2_0_1_3__14597);
            rule__Connection__Group_2_0_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2309:1: rule__Connection__Group_2_0_1_3__1__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_0_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2313:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2314:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2314:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2315:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_0_1_3_1()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_0_1_3__1__Impl4625); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_0_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2328:1: rule__Connection__Group_2_0_1_3__2 : rule__Connection__Group_2_0_1_3__2__Impl rule__Connection__Group_2_0_1_3__3 ;
    public final void rule__Connection__Group_2_0_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2332:1: ( rule__Connection__Group_2_0_1_3__2__Impl rule__Connection__Group_2_0_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2333:2: rule__Connection__Group_2_0_1_3__2__Impl rule__Connection__Group_2_0_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__2__Impl_in_rule__Connection__Group_2_0_1_3__24656);
            rule__Connection__Group_2_0_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__3_in_rule__Connection__Group_2_0_1_3__24659);
            rule__Connection__Group_2_0_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2340:1: rule__Connection__Group_2_0_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2344:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2345:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2345:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2346:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_1_3__2__Impl4687); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2359:1: rule__Connection__Group_2_0_1_3__3 : rule__Connection__Group_2_0_1_3__3__Impl ;
    public final void rule__Connection__Group_2_0_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2363:1: ( rule__Connection__Group_2_0_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2364:2: rule__Connection__Group_2_0_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__3__Impl_in_rule__Connection__Group_2_0_1_3__34718);
            rule__Connection__Group_2_0_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_0_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2370:1: rule__Connection__Group_2_0_1_3__3__Impl : ( ( rule__Connection__UrlAssignment_2_0_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_0_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2374:1: ( ( ( rule__Connection__UrlAssignment_2_0_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2375:1: ( ( rule__Connection__UrlAssignment_2_0_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2375:1: ( ( rule__Connection__UrlAssignment_2_0_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2376:1: ( rule__Connection__UrlAssignment_2_0_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_0_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2377:1: ( rule__Connection__UrlAssignment_2_0_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2377:2: rule__Connection__UrlAssignment_2_0_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_0_1_3_3_in_rule__Connection__Group_2_0_1_3__3__Impl4745);
            rule__Connection__UrlAssignment_2_0_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_0_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2395:1: rule__Connection__Group_2_0_1_4__0 : rule__Connection__Group_2_0_1_4__0__Impl rule__Connection__Group_2_0_1_4__1 ;
    public final void rule__Connection__Group_2_0_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2399:1: ( rule__Connection__Group_2_0_1_4__0__Impl rule__Connection__Group_2_0_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2400:2: rule__Connection__Group_2_0_1_4__0__Impl rule__Connection__Group_2_0_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__0__Impl_in_rule__Connection__Group_2_0_1_4__04783);
            rule__Connection__Group_2_0_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__1_in_rule__Connection__Group_2_0_1_4__04786);
            rule__Connection__Group_2_0_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2407:1: rule__Connection__Group_2_0_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_0_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2411:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2412:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2412:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2413:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_0_1_4__0__Impl4814); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2426:1: rule__Connection__Group_2_0_1_4__1 : rule__Connection__Group_2_0_1_4__1__Impl rule__Connection__Group_2_0_1_4__2 ;
    public final void rule__Connection__Group_2_0_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2430:1: ( rule__Connection__Group_2_0_1_4__1__Impl rule__Connection__Group_2_0_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2431:2: rule__Connection__Group_2_0_1_4__1__Impl rule__Connection__Group_2_0_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__1__Impl_in_rule__Connection__Group_2_0_1_4__14845);
            rule__Connection__Group_2_0_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__2_in_rule__Connection__Group_2_0_1_4__14848);
            rule__Connection__Group_2_0_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2438:1: rule__Connection__Group_2_0_1_4__1__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_0_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2442:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2443:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2443:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2444:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_0_1_4_1()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_0_1_4__1__Impl4876); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_0_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2457:1: rule__Connection__Group_2_0_1_4__2 : rule__Connection__Group_2_0_1_4__2__Impl rule__Connection__Group_2_0_1_4__3 ;
    public final void rule__Connection__Group_2_0_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2461:1: ( rule__Connection__Group_2_0_1_4__2__Impl rule__Connection__Group_2_0_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2462:2: rule__Connection__Group_2_0_1_4__2__Impl rule__Connection__Group_2_0_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__2__Impl_in_rule__Connection__Group_2_0_1_4__24907);
            rule__Connection__Group_2_0_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__3_in_rule__Connection__Group_2_0_1_4__24910);
            rule__Connection__Group_2_0_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2469:1: rule__Connection__Group_2_0_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2473:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2474:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2474:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2475:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_1_4__2__Impl4938); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2488:1: rule__Connection__Group_2_0_1_4__3 : rule__Connection__Group_2_0_1_4__3__Impl ;
    public final void rule__Connection__Group_2_0_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2492:1: ( rule__Connection__Group_2_0_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2493:2: rule__Connection__Group_2_0_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__3__Impl_in_rule__Connection__Group_2_0_1_4__34969);
            rule__Connection__Group_2_0_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_0_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2499:1: rule__Connection__Group_2_0_1_4__3__Impl : ( ( rule__Connection__PortAssignment_2_0_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_0_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2503:1: ( ( ( rule__Connection__PortAssignment_2_0_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2504:1: ( ( rule__Connection__PortAssignment_2_0_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2504:1: ( ( rule__Connection__PortAssignment_2_0_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2505:1: ( rule__Connection__PortAssignment_2_0_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_0_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2506:1: ( rule__Connection__PortAssignment_2_0_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2506:2: rule__Connection__PortAssignment_2_0_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_0_1_4_3_in_rule__Connection__Group_2_0_1_4__3__Impl4996);
            rule__Connection__PortAssignment_2_0_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_0_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2524:1: rule__Connection__Group_2_0_1_5__0 : rule__Connection__Group_2_0_1_5__0__Impl rule__Connection__Group_2_0_1_5__1 ;
    public final void rule__Connection__Group_2_0_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2528:1: ( rule__Connection__Group_2_0_1_5__0__Impl rule__Connection__Group_2_0_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2529:2: rule__Connection__Group_2_0_1_5__0__Impl rule__Connection__Group_2_0_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__0__Impl_in_rule__Connection__Group_2_0_1_5__05034);
            rule__Connection__Group_2_0_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__1_in_rule__Connection__Group_2_0_1_5__05037);
            rule__Connection__Group_2_0_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2536:1: rule__Connection__Group_2_0_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_0_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2540:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2541:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2541:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2542:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_0_1_5__0__Impl5065); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_0_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2555:1: rule__Connection__Group_2_0_1_5__1 : rule__Connection__Group_2_0_1_5__1__Impl rule__Connection__Group_2_0_1_5__2 ;
    public final void rule__Connection__Group_2_0_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2559:1: ( rule__Connection__Group_2_0_1_5__1__Impl rule__Connection__Group_2_0_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2560:2: rule__Connection__Group_2_0_1_5__1__Impl rule__Connection__Group_2_0_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__1__Impl_in_rule__Connection__Group_2_0_1_5__15096);
            rule__Connection__Group_2_0_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__2_in_rule__Connection__Group_2_0_1_5__15099);
            rule__Connection__Group_2_0_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2567:1: rule__Connection__Group_2_0_1_5__1__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_0_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2571:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2572:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2572:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2573:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_0_1_5_1()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_0_1_5__1__Impl5127); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_0_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2586:1: rule__Connection__Group_2_0_1_5__2 : rule__Connection__Group_2_0_1_5__2__Impl rule__Connection__Group_2_0_1_5__3 ;
    public final void rule__Connection__Group_2_0_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2590:1: ( rule__Connection__Group_2_0_1_5__2__Impl rule__Connection__Group_2_0_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2591:2: rule__Connection__Group_2_0_1_5__2__Impl rule__Connection__Group_2_0_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__2__Impl_in_rule__Connection__Group_2_0_1_5__25158);
            rule__Connection__Group_2_0_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__3_in_rule__Connection__Group_2_0_1_5__25161);
            rule__Connection__Group_2_0_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2598:1: rule__Connection__Group_2_0_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_0_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2602:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2603:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2603:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2604:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_0_1_5__2__Impl5189); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_0_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2617:1: rule__Connection__Group_2_0_1_5__3 : rule__Connection__Group_2_0_1_5__3__Impl ;
    public final void rule__Connection__Group_2_0_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2621:1: ( rule__Connection__Group_2_0_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2622:2: rule__Connection__Group_2_0_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__3__Impl_in_rule__Connection__Group_2_0_1_5__35220);
            rule__Connection__Group_2_0_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_0_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2628:1: rule__Connection__Group_2_0_1_5__3__Impl : ( ( rule__Connection__PoolsizeAssignment_2_0_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_0_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2632:1: ( ( ( rule__Connection__PoolsizeAssignment_2_0_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2633:1: ( ( rule__Connection__PoolsizeAssignment_2_0_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2633:1: ( ( rule__Connection__PoolsizeAssignment_2_0_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2634:1: ( rule__Connection__PoolsizeAssignment_2_0_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_0_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2635:1: ( rule__Connection__PoolsizeAssignment_2_0_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2635:2: rule__Connection__PoolsizeAssignment_2_0_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_0_1_5_3_in_rule__Connection__Group_2_0_1_5__3__Impl5247);
            rule__Connection__PoolsizeAssignment_2_0_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_0_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_0_1_5__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2653:1: rule__Connection__Group_2_1__0 : rule__Connection__Group_2_1__0__Impl rule__Connection__Group_2_1__1 ;
    public final void rule__Connection__Group_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2657:1: ( rule__Connection__Group_2_1__0__Impl rule__Connection__Group_2_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2658:2: rule__Connection__Group_2_1__0__Impl rule__Connection__Group_2_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1__0__Impl_in_rule__Connection__Group_2_1__05285);
            rule__Connection__Group_2_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1__1_in_rule__Connection__Group_2_1__05288);
            rule__Connection__Group_2_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1__0"


    // $ANTLR start "rule__Connection__Group_2_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2665:1: rule__Connection__Group_2_1__0__Impl : ( ( rule__Connection__Group_2_1_0__0 ) ) ;
    public final void rule__Connection__Group_2_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2669:1: ( ( ( rule__Connection__Group_2_1_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2670:1: ( ( rule__Connection__Group_2_1_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2670:1: ( ( rule__Connection__Group_2_1_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2671:1: ( rule__Connection__Group_2_1_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2672:1: ( rule__Connection__Group_2_1_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2672:2: rule__Connection__Group_2_1_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_0__0_in_rule__Connection__Group_2_1__0__Impl5315);
            rule__Connection__Group_2_1_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2682:1: rule__Connection__Group_2_1__1 : rule__Connection__Group_2_1__1__Impl ;
    public final void rule__Connection__Group_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2686:1: ( rule__Connection__Group_2_1__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2687:2: rule__Connection__Group_2_1__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1__1__Impl_in_rule__Connection__Group_2_1__15345);
            rule__Connection__Group_2_1__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1__1"


    // $ANTLR start "rule__Connection__Group_2_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2693:1: rule__Connection__Group_2_1__1__Impl : ( ( rule__Connection__UnorderedGroup_2_1_1 ) ) ;
    public final void rule__Connection__Group_2_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2697:1: ( ( ( rule__Connection__UnorderedGroup_2_1_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2698:1: ( ( rule__Connection__UnorderedGroup_2_1_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2698:1: ( ( rule__Connection__UnorderedGroup_2_1_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2699:1: ( rule__Connection__UnorderedGroup_2_1_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2700:1: ( rule__Connection__UnorderedGroup_2_1_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2700:2: rule__Connection__UnorderedGroup_2_1_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1_in_rule__Connection__Group_2_1__1__Impl5372);
            rule__Connection__UnorderedGroup_2_1_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2714:1: rule__Connection__Group_2_1_0__0 : rule__Connection__Group_2_1_0__0__Impl rule__Connection__Group_2_1_0__1 ;
    public final void rule__Connection__Group_2_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2718:1: ( rule__Connection__Group_2_1_0__0__Impl rule__Connection__Group_2_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2719:2: rule__Connection__Group_2_1_0__0__Impl rule__Connection__Group_2_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_0__0__Impl_in_rule__Connection__Group_2_1_0__05406);
            rule__Connection__Group_2_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_0__1_in_rule__Connection__Group_2_1_0__05409);
            rule__Connection__Group_2_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2726:1: rule__Connection__Group_2_1_0__0__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2730:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2731:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2731:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2732:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_1_0_0()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_1_0__0__Impl5437); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2745:1: rule__Connection__Group_2_1_0__1 : rule__Connection__Group_2_1_0__1__Impl rule__Connection__Group_2_1_0__2 ;
    public final void rule__Connection__Group_2_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2749:1: ( rule__Connection__Group_2_1_0__1__Impl rule__Connection__Group_2_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2750:2: rule__Connection__Group_2_1_0__1__Impl rule__Connection__Group_2_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_0__1__Impl_in_rule__Connection__Group_2_1_0__15468);
            rule__Connection__Group_2_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_0__2_in_rule__Connection__Group_2_1_0__15471);
            rule__Connection__Group_2_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2757:1: rule__Connection__Group_2_1_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2761:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2762:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2762:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2763:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_0__1__Impl5499); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2776:1: rule__Connection__Group_2_1_0__2 : rule__Connection__Group_2_1_0__2__Impl ;
    public final void rule__Connection__Group_2_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2780:1: ( rule__Connection__Group_2_1_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2781:2: rule__Connection__Group_2_1_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_0__2__Impl_in_rule__Connection__Group_2_1_0__25530);
            rule__Connection__Group_2_1_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2787:1: rule__Connection__Group_2_1_0__2__Impl : ( ( rule__Connection__DbnameAssignment_2_1_0_2 ) ) ;
    public final void rule__Connection__Group_2_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2791:1: ( ( ( rule__Connection__DbnameAssignment_2_1_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2792:1: ( ( rule__Connection__DbnameAssignment_2_1_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2792:1: ( ( rule__Connection__DbnameAssignment_2_1_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2793:1: ( rule__Connection__DbnameAssignment_2_1_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_1_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2794:1: ( rule__Connection__DbnameAssignment_2_1_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2794:2: rule__Connection__DbnameAssignment_2_1_0_2
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_1_0_2_in_rule__Connection__Group_2_1_0__2__Impl5557);
            rule__Connection__DbnameAssignment_2_1_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2810:1: rule__Connection__Group_2_1_1_0__0 : rule__Connection__Group_2_1_1_0__0__Impl rule__Connection__Group_2_1_1_0__1 ;
    public final void rule__Connection__Group_2_1_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2814:1: ( rule__Connection__Group_2_1_1_0__0__Impl rule__Connection__Group_2_1_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2815:2: rule__Connection__Group_2_1_1_0__0__Impl rule__Connection__Group_2_1_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__0__Impl_in_rule__Connection__Group_2_1_1_0__05593);
            rule__Connection__Group_2_1_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__1_in_rule__Connection__Group_2_1_1_0__05596);
            rule__Connection__Group_2_1_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2822:1: rule__Connection__Group_2_1_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_1_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2826:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2827:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2827:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2828:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_1_1_0__0__Impl5624); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2841:1: rule__Connection__Group_2_1_1_0__1 : rule__Connection__Group_2_1_1_0__1__Impl rule__Connection__Group_2_1_1_0__2 ;
    public final void rule__Connection__Group_2_1_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2845:1: ( rule__Connection__Group_2_1_1_0__1__Impl rule__Connection__Group_2_1_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2846:2: rule__Connection__Group_2_1_1_0__1__Impl rule__Connection__Group_2_1_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__1__Impl_in_rule__Connection__Group_2_1_1_0__15655);
            rule__Connection__Group_2_1_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__2_in_rule__Connection__Group_2_1_1_0__15658);
            rule__Connection__Group_2_1_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2853:1: rule__Connection__Group_2_1_1_0__1__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_1_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2857:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2858:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2858:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2859:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_1_1_0_1()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_1_1_0__1__Impl5686); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_1_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2872:1: rule__Connection__Group_2_1_1_0__2 : rule__Connection__Group_2_1_1_0__2__Impl rule__Connection__Group_2_1_1_0__3 ;
    public final void rule__Connection__Group_2_1_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2876:1: ( rule__Connection__Group_2_1_1_0__2__Impl rule__Connection__Group_2_1_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2877:2: rule__Connection__Group_2_1_1_0__2__Impl rule__Connection__Group_2_1_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__2__Impl_in_rule__Connection__Group_2_1_1_0__25717);
            rule__Connection__Group_2_1_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__3_in_rule__Connection__Group_2_1_1_0__25720);
            rule__Connection__Group_2_1_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2884:1: rule__Connection__Group_2_1_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2888:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2889:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2889:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2890:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_1_0__2__Impl5748); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2903:1: rule__Connection__Group_2_1_1_0__3 : rule__Connection__Group_2_1_1_0__3__Impl ;
    public final void rule__Connection__Group_2_1_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2907:1: ( rule__Connection__Group_2_1_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2908:2: rule__Connection__Group_2_1_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__3__Impl_in_rule__Connection__Group_2_1_1_0__35779);
            rule__Connection__Group_2_1_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_1_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2914:1: rule__Connection__Group_2_1_1_0__3__Impl : ( ( rule__Connection__TypeAssignment_2_1_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_1_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2918:1: ( ( ( rule__Connection__TypeAssignment_2_1_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2919:1: ( ( rule__Connection__TypeAssignment_2_1_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2919:1: ( ( rule__Connection__TypeAssignment_2_1_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2920:1: ( rule__Connection__TypeAssignment_2_1_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_1_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2921:1: ( rule__Connection__TypeAssignment_2_1_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2921:2: rule__Connection__TypeAssignment_2_1_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_1_1_0_3_in_rule__Connection__Group_2_1_1_0__3__Impl5806);
            rule__Connection__TypeAssignment_2_1_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_1_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2939:1: rule__Connection__Group_2_1_1_1__0 : rule__Connection__Group_2_1_1_1__0__Impl rule__Connection__Group_2_1_1_1__1 ;
    public final void rule__Connection__Group_2_1_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2943:1: ( rule__Connection__Group_2_1_1_1__0__Impl rule__Connection__Group_2_1_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2944:2: rule__Connection__Group_2_1_1_1__0__Impl rule__Connection__Group_2_1_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__0__Impl_in_rule__Connection__Group_2_1_1_1__05844);
            rule__Connection__Group_2_1_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__1_in_rule__Connection__Group_2_1_1_1__05847);
            rule__Connection__Group_2_1_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2951:1: rule__Connection__Group_2_1_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_1_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2955:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2956:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2956:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2957:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_1_1_1__0__Impl5875); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2970:1: rule__Connection__Group_2_1_1_1__1 : rule__Connection__Group_2_1_1_1__1__Impl rule__Connection__Group_2_1_1_1__2 ;
    public final void rule__Connection__Group_2_1_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2974:1: ( rule__Connection__Group_2_1_1_1__1__Impl rule__Connection__Group_2_1_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2975:2: rule__Connection__Group_2_1_1_1__1__Impl rule__Connection__Group_2_1_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__1__Impl_in_rule__Connection__Group_2_1_1_1__15906);
            rule__Connection__Group_2_1_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__2_in_rule__Connection__Group_2_1_1_1__15909);
            rule__Connection__Group_2_1_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2982:1: rule__Connection__Group_2_1_1_1__1__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_1_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2986:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2987:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2987:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:2988:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_1_1_1_1()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_1_1_1__1__Impl5937); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_1_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3001:1: rule__Connection__Group_2_1_1_1__2 : rule__Connection__Group_2_1_1_1__2__Impl rule__Connection__Group_2_1_1_1__3 ;
    public final void rule__Connection__Group_2_1_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3005:1: ( rule__Connection__Group_2_1_1_1__2__Impl rule__Connection__Group_2_1_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3006:2: rule__Connection__Group_2_1_1_1__2__Impl rule__Connection__Group_2_1_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__2__Impl_in_rule__Connection__Group_2_1_1_1__25968);
            rule__Connection__Group_2_1_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__3_in_rule__Connection__Group_2_1_1_1__25971);
            rule__Connection__Group_2_1_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3013:1: rule__Connection__Group_2_1_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3017:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3018:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3018:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3019:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_1_1__2__Impl5999); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3032:1: rule__Connection__Group_2_1_1_1__3 : rule__Connection__Group_2_1_1_1__3__Impl ;
    public final void rule__Connection__Group_2_1_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3036:1: ( rule__Connection__Group_2_1_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3037:2: rule__Connection__Group_2_1_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__3__Impl_in_rule__Connection__Group_2_1_1_1__36030);
            rule__Connection__Group_2_1_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_1_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3043:1: rule__Connection__Group_2_1_1_1__3__Impl : ( ( rule__Connection__UserAssignment_2_1_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_1_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3047:1: ( ( ( rule__Connection__UserAssignment_2_1_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3048:1: ( ( rule__Connection__UserAssignment_2_1_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3048:1: ( ( rule__Connection__UserAssignment_2_1_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3049:1: ( rule__Connection__UserAssignment_2_1_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_1_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3050:1: ( rule__Connection__UserAssignment_2_1_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3050:2: rule__Connection__UserAssignment_2_1_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_1_1_1_3_in_rule__Connection__Group_2_1_1_1__3__Impl6057);
            rule__Connection__UserAssignment_2_1_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_1_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3068:1: rule__Connection__Group_2_1_1_2__0 : rule__Connection__Group_2_1_1_2__0__Impl rule__Connection__Group_2_1_1_2__1 ;
    public final void rule__Connection__Group_2_1_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3072:1: ( rule__Connection__Group_2_1_1_2__0__Impl rule__Connection__Group_2_1_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3073:2: rule__Connection__Group_2_1_1_2__0__Impl rule__Connection__Group_2_1_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__0__Impl_in_rule__Connection__Group_2_1_1_2__06095);
            rule__Connection__Group_2_1_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__1_in_rule__Connection__Group_2_1_1_2__06098);
            rule__Connection__Group_2_1_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3080:1: rule__Connection__Group_2_1_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_1_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3084:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3085:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3085:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3086:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_1_1_2__0__Impl6126); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3099:1: rule__Connection__Group_2_1_1_2__1 : rule__Connection__Group_2_1_1_2__1__Impl rule__Connection__Group_2_1_1_2__2 ;
    public final void rule__Connection__Group_2_1_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3103:1: ( rule__Connection__Group_2_1_1_2__1__Impl rule__Connection__Group_2_1_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3104:2: rule__Connection__Group_2_1_1_2__1__Impl rule__Connection__Group_2_1_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__1__Impl_in_rule__Connection__Group_2_1_1_2__16157);
            rule__Connection__Group_2_1_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__2_in_rule__Connection__Group_2_1_1_2__16160);
            rule__Connection__Group_2_1_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3111:1: rule__Connection__Group_2_1_1_2__1__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_1_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3115:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3116:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3116:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3117:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_1_1_2_1()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_1_1_2__1__Impl6188); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_1_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3130:1: rule__Connection__Group_2_1_1_2__2 : rule__Connection__Group_2_1_1_2__2__Impl rule__Connection__Group_2_1_1_2__3 ;
    public final void rule__Connection__Group_2_1_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3134:1: ( rule__Connection__Group_2_1_1_2__2__Impl rule__Connection__Group_2_1_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3135:2: rule__Connection__Group_2_1_1_2__2__Impl rule__Connection__Group_2_1_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__2__Impl_in_rule__Connection__Group_2_1_1_2__26219);
            rule__Connection__Group_2_1_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__3_in_rule__Connection__Group_2_1_1_2__26222);
            rule__Connection__Group_2_1_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3142:1: rule__Connection__Group_2_1_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3146:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3147:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3147:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3148:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_1_2__2__Impl6250); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3161:1: rule__Connection__Group_2_1_1_2__3 : rule__Connection__Group_2_1_1_2__3__Impl ;
    public final void rule__Connection__Group_2_1_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3165:1: ( rule__Connection__Group_2_1_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3166:2: rule__Connection__Group_2_1_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__3__Impl_in_rule__Connection__Group_2_1_1_2__36281);
            rule__Connection__Group_2_1_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_1_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3172:1: rule__Connection__Group_2_1_1_2__3__Impl : ( ( rule__Connection__PasswordAssignment_2_1_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_1_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3176:1: ( ( ( rule__Connection__PasswordAssignment_2_1_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3177:1: ( ( rule__Connection__PasswordAssignment_2_1_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3177:1: ( ( rule__Connection__PasswordAssignment_2_1_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3178:1: ( rule__Connection__PasswordAssignment_2_1_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_1_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3179:1: ( rule__Connection__PasswordAssignment_2_1_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3179:2: rule__Connection__PasswordAssignment_2_1_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_1_1_2_3_in_rule__Connection__Group_2_1_1_2__3__Impl6308);
            rule__Connection__PasswordAssignment_2_1_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_1_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3197:1: rule__Connection__Group_2_1_1_3__0 : rule__Connection__Group_2_1_1_3__0__Impl rule__Connection__Group_2_1_1_3__1 ;
    public final void rule__Connection__Group_2_1_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3201:1: ( rule__Connection__Group_2_1_1_3__0__Impl rule__Connection__Group_2_1_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3202:2: rule__Connection__Group_2_1_1_3__0__Impl rule__Connection__Group_2_1_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__0__Impl_in_rule__Connection__Group_2_1_1_3__06346);
            rule__Connection__Group_2_1_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__1_in_rule__Connection__Group_2_1_1_3__06349);
            rule__Connection__Group_2_1_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3209:1: rule__Connection__Group_2_1_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_1_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3213:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3214:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3214:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3215:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_1_1_3__0__Impl6377); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3228:1: rule__Connection__Group_2_1_1_3__1 : rule__Connection__Group_2_1_1_3__1__Impl rule__Connection__Group_2_1_1_3__2 ;
    public final void rule__Connection__Group_2_1_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3232:1: ( rule__Connection__Group_2_1_1_3__1__Impl rule__Connection__Group_2_1_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3233:2: rule__Connection__Group_2_1_1_3__1__Impl rule__Connection__Group_2_1_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__1__Impl_in_rule__Connection__Group_2_1_1_3__16408);
            rule__Connection__Group_2_1_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__2_in_rule__Connection__Group_2_1_1_3__16411);
            rule__Connection__Group_2_1_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3240:1: rule__Connection__Group_2_1_1_3__1__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_1_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3244:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3245:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3245:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3246:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_1_1_3_1()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_1_1_3__1__Impl6439); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_1_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3259:1: rule__Connection__Group_2_1_1_3__2 : rule__Connection__Group_2_1_1_3__2__Impl rule__Connection__Group_2_1_1_3__3 ;
    public final void rule__Connection__Group_2_1_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3263:1: ( rule__Connection__Group_2_1_1_3__2__Impl rule__Connection__Group_2_1_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3264:2: rule__Connection__Group_2_1_1_3__2__Impl rule__Connection__Group_2_1_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__2__Impl_in_rule__Connection__Group_2_1_1_3__26470);
            rule__Connection__Group_2_1_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__3_in_rule__Connection__Group_2_1_1_3__26473);
            rule__Connection__Group_2_1_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3271:1: rule__Connection__Group_2_1_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3275:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3276:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3276:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3277:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_1_3__2__Impl6501); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3290:1: rule__Connection__Group_2_1_1_3__3 : rule__Connection__Group_2_1_1_3__3__Impl ;
    public final void rule__Connection__Group_2_1_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3294:1: ( rule__Connection__Group_2_1_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3295:2: rule__Connection__Group_2_1_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__3__Impl_in_rule__Connection__Group_2_1_1_3__36532);
            rule__Connection__Group_2_1_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_1_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3301:1: rule__Connection__Group_2_1_1_3__3__Impl : ( ( rule__Connection__UrlAssignment_2_1_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_1_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3305:1: ( ( ( rule__Connection__UrlAssignment_2_1_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3306:1: ( ( rule__Connection__UrlAssignment_2_1_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3306:1: ( ( rule__Connection__UrlAssignment_2_1_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3307:1: ( rule__Connection__UrlAssignment_2_1_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_1_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3308:1: ( rule__Connection__UrlAssignment_2_1_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3308:2: rule__Connection__UrlAssignment_2_1_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_1_1_3_3_in_rule__Connection__Group_2_1_1_3__3__Impl6559);
            rule__Connection__UrlAssignment_2_1_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_1_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3326:1: rule__Connection__Group_2_1_1_4__0 : rule__Connection__Group_2_1_1_4__0__Impl rule__Connection__Group_2_1_1_4__1 ;
    public final void rule__Connection__Group_2_1_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3330:1: ( rule__Connection__Group_2_1_1_4__0__Impl rule__Connection__Group_2_1_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3331:2: rule__Connection__Group_2_1_1_4__0__Impl rule__Connection__Group_2_1_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__0__Impl_in_rule__Connection__Group_2_1_1_4__06597);
            rule__Connection__Group_2_1_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__1_in_rule__Connection__Group_2_1_1_4__06600);
            rule__Connection__Group_2_1_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3338:1: rule__Connection__Group_2_1_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_1_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3342:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3343:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3343:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3344:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_1_1_4__0__Impl6628); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3357:1: rule__Connection__Group_2_1_1_4__1 : rule__Connection__Group_2_1_1_4__1__Impl rule__Connection__Group_2_1_1_4__2 ;
    public final void rule__Connection__Group_2_1_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3361:1: ( rule__Connection__Group_2_1_1_4__1__Impl rule__Connection__Group_2_1_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3362:2: rule__Connection__Group_2_1_1_4__1__Impl rule__Connection__Group_2_1_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__1__Impl_in_rule__Connection__Group_2_1_1_4__16659);
            rule__Connection__Group_2_1_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__2_in_rule__Connection__Group_2_1_1_4__16662);
            rule__Connection__Group_2_1_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3369:1: rule__Connection__Group_2_1_1_4__1__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_1_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3373:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3374:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3374:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3375:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_1_1_4_1()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_1_1_4__1__Impl6690); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_1_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3388:1: rule__Connection__Group_2_1_1_4__2 : rule__Connection__Group_2_1_1_4__2__Impl rule__Connection__Group_2_1_1_4__3 ;
    public final void rule__Connection__Group_2_1_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3392:1: ( rule__Connection__Group_2_1_1_4__2__Impl rule__Connection__Group_2_1_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3393:2: rule__Connection__Group_2_1_1_4__2__Impl rule__Connection__Group_2_1_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__2__Impl_in_rule__Connection__Group_2_1_1_4__26721);
            rule__Connection__Group_2_1_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__3_in_rule__Connection__Group_2_1_1_4__26724);
            rule__Connection__Group_2_1_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3400:1: rule__Connection__Group_2_1_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3404:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3405:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3405:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3406:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_1_4__2__Impl6752); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3419:1: rule__Connection__Group_2_1_1_4__3 : rule__Connection__Group_2_1_1_4__3__Impl ;
    public final void rule__Connection__Group_2_1_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3423:1: ( rule__Connection__Group_2_1_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3424:2: rule__Connection__Group_2_1_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__3__Impl_in_rule__Connection__Group_2_1_1_4__36783);
            rule__Connection__Group_2_1_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_1_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3430:1: rule__Connection__Group_2_1_1_4__3__Impl : ( ( rule__Connection__PortAssignment_2_1_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_1_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3434:1: ( ( ( rule__Connection__PortAssignment_2_1_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3435:1: ( ( rule__Connection__PortAssignment_2_1_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3435:1: ( ( rule__Connection__PortAssignment_2_1_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3436:1: ( rule__Connection__PortAssignment_2_1_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_1_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3437:1: ( rule__Connection__PortAssignment_2_1_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3437:2: rule__Connection__PortAssignment_2_1_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_1_1_4_3_in_rule__Connection__Group_2_1_1_4__3__Impl6810);
            rule__Connection__PortAssignment_2_1_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_1_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3455:1: rule__Connection__Group_2_1_1_5__0 : rule__Connection__Group_2_1_1_5__0__Impl rule__Connection__Group_2_1_1_5__1 ;
    public final void rule__Connection__Group_2_1_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3459:1: ( rule__Connection__Group_2_1_1_5__0__Impl rule__Connection__Group_2_1_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3460:2: rule__Connection__Group_2_1_1_5__0__Impl rule__Connection__Group_2_1_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__0__Impl_in_rule__Connection__Group_2_1_1_5__06848);
            rule__Connection__Group_2_1_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__1_in_rule__Connection__Group_2_1_1_5__06851);
            rule__Connection__Group_2_1_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3467:1: rule__Connection__Group_2_1_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_1_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3471:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3472:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3472:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3473:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_1_1_5__0__Impl6879); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_1_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3486:1: rule__Connection__Group_2_1_1_5__1 : rule__Connection__Group_2_1_1_5__1__Impl rule__Connection__Group_2_1_1_5__2 ;
    public final void rule__Connection__Group_2_1_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3490:1: ( rule__Connection__Group_2_1_1_5__1__Impl rule__Connection__Group_2_1_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3491:2: rule__Connection__Group_2_1_1_5__1__Impl rule__Connection__Group_2_1_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__1__Impl_in_rule__Connection__Group_2_1_1_5__16910);
            rule__Connection__Group_2_1_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__2_in_rule__Connection__Group_2_1_1_5__16913);
            rule__Connection__Group_2_1_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3498:1: rule__Connection__Group_2_1_1_5__1__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_1_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3502:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3503:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3503:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3504:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_1_1_5_1()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_1_1_5__1__Impl6941); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_1_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3517:1: rule__Connection__Group_2_1_1_5__2 : rule__Connection__Group_2_1_1_5__2__Impl rule__Connection__Group_2_1_1_5__3 ;
    public final void rule__Connection__Group_2_1_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3521:1: ( rule__Connection__Group_2_1_1_5__2__Impl rule__Connection__Group_2_1_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3522:2: rule__Connection__Group_2_1_1_5__2__Impl rule__Connection__Group_2_1_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__2__Impl_in_rule__Connection__Group_2_1_1_5__26972);
            rule__Connection__Group_2_1_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__3_in_rule__Connection__Group_2_1_1_5__26975);
            rule__Connection__Group_2_1_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3529:1: rule__Connection__Group_2_1_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_1_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3533:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3534:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3534:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3535:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_1_1_5__2__Impl7003); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_1_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3548:1: rule__Connection__Group_2_1_1_5__3 : rule__Connection__Group_2_1_1_5__3__Impl ;
    public final void rule__Connection__Group_2_1_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3552:1: ( rule__Connection__Group_2_1_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3553:2: rule__Connection__Group_2_1_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__3__Impl_in_rule__Connection__Group_2_1_1_5__37034);
            rule__Connection__Group_2_1_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_1_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3559:1: rule__Connection__Group_2_1_1_5__3__Impl : ( ( rule__Connection__PoolsizeAssignment_2_1_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_1_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3563:1: ( ( ( rule__Connection__PoolsizeAssignment_2_1_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3564:1: ( ( rule__Connection__PoolsizeAssignment_2_1_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3564:1: ( ( rule__Connection__PoolsizeAssignment_2_1_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3565:1: ( rule__Connection__PoolsizeAssignment_2_1_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_1_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3566:1: ( rule__Connection__PoolsizeAssignment_2_1_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3566:2: rule__Connection__PoolsizeAssignment_2_1_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_1_1_5_3_in_rule__Connection__Group_2_1_1_5__3__Impl7061);
            rule__Connection__PoolsizeAssignment_2_1_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_1_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_1_1_5__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3584:1: rule__Connection__Group_2_2__0 : rule__Connection__Group_2_2__0__Impl rule__Connection__Group_2_2__1 ;
    public final void rule__Connection__Group_2_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3588:1: ( rule__Connection__Group_2_2__0__Impl rule__Connection__Group_2_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3589:2: rule__Connection__Group_2_2__0__Impl rule__Connection__Group_2_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2__0__Impl_in_rule__Connection__Group_2_2__07099);
            rule__Connection__Group_2_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2__1_in_rule__Connection__Group_2_2__07102);
            rule__Connection__Group_2_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2__0"


    // $ANTLR start "rule__Connection__Group_2_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3596:1: rule__Connection__Group_2_2__0__Impl : ( ( rule__Connection__Group_2_2_0__0 ) ) ;
    public final void rule__Connection__Group_2_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3600:1: ( ( ( rule__Connection__Group_2_2_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3601:1: ( ( rule__Connection__Group_2_2_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3601:1: ( ( rule__Connection__Group_2_2_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3602:1: ( rule__Connection__Group_2_2_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_2_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3603:1: ( rule__Connection__Group_2_2_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3603:2: rule__Connection__Group_2_2_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_0__0_in_rule__Connection__Group_2_2__0__Impl7129);
            rule__Connection__Group_2_2_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3613:1: rule__Connection__Group_2_2__1 : rule__Connection__Group_2_2__1__Impl ;
    public final void rule__Connection__Group_2_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3617:1: ( rule__Connection__Group_2_2__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3618:2: rule__Connection__Group_2_2__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2__1__Impl_in_rule__Connection__Group_2_2__17159);
            rule__Connection__Group_2_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2__1"


    // $ANTLR start "rule__Connection__Group_2_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3624:1: rule__Connection__Group_2_2__1__Impl : ( ( rule__Connection__UnorderedGroup_2_2_1 ) ) ;
    public final void rule__Connection__Group_2_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3628:1: ( ( ( rule__Connection__UnorderedGroup_2_2_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3629:1: ( ( rule__Connection__UnorderedGroup_2_2_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3629:1: ( ( rule__Connection__UnorderedGroup_2_2_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3630:1: ( rule__Connection__UnorderedGroup_2_2_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3631:1: ( rule__Connection__UnorderedGroup_2_2_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3631:2: rule__Connection__UnorderedGroup_2_2_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1_in_rule__Connection__Group_2_2__1__Impl7186);
            rule__Connection__UnorderedGroup_2_2_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3645:1: rule__Connection__Group_2_2_0__0 : rule__Connection__Group_2_2_0__0__Impl rule__Connection__Group_2_2_0__1 ;
    public final void rule__Connection__Group_2_2_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3649:1: ( rule__Connection__Group_2_2_0__0__Impl rule__Connection__Group_2_2_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3650:2: rule__Connection__Group_2_2_0__0__Impl rule__Connection__Group_2_2_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_0__0__Impl_in_rule__Connection__Group_2_2_0__07220);
            rule__Connection__Group_2_2_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_0__1_in_rule__Connection__Group_2_2_0__07223);
            rule__Connection__Group_2_2_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_0__0"


    // $ANTLR start "rule__Connection__Group_2_2_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3657:1: rule__Connection__Group_2_2_0__0__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_2_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3661:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3662:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3662:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3663:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_2_0_0()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_2_0__0__Impl7251); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_2_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3676:1: rule__Connection__Group_2_2_0__1 : rule__Connection__Group_2_2_0__1__Impl rule__Connection__Group_2_2_0__2 ;
    public final void rule__Connection__Group_2_2_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3680:1: ( rule__Connection__Group_2_2_0__1__Impl rule__Connection__Group_2_2_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3681:2: rule__Connection__Group_2_2_0__1__Impl rule__Connection__Group_2_2_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_0__1__Impl_in_rule__Connection__Group_2_2_0__17282);
            rule__Connection__Group_2_2_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_0__2_in_rule__Connection__Group_2_2_0__17285);
            rule__Connection__Group_2_2_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_0__1"


    // $ANTLR start "rule__Connection__Group_2_2_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3688:1: rule__Connection__Group_2_2_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3692:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3693:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3693:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3694:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_0__1__Impl7313); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3707:1: rule__Connection__Group_2_2_0__2 : rule__Connection__Group_2_2_0__2__Impl ;
    public final void rule__Connection__Group_2_2_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3711:1: ( rule__Connection__Group_2_2_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3712:2: rule__Connection__Group_2_2_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_0__2__Impl_in_rule__Connection__Group_2_2_0__27344);
            rule__Connection__Group_2_2_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_0__2"


    // $ANTLR start "rule__Connection__Group_2_2_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3718:1: rule__Connection__Group_2_2_0__2__Impl : ( ( rule__Connection__UserAssignment_2_2_0_2 ) ) ;
    public final void rule__Connection__Group_2_2_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3722:1: ( ( ( rule__Connection__UserAssignment_2_2_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3723:1: ( ( rule__Connection__UserAssignment_2_2_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3723:1: ( ( rule__Connection__UserAssignment_2_2_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3724:1: ( rule__Connection__UserAssignment_2_2_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_2_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3725:1: ( rule__Connection__UserAssignment_2_2_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3725:2: rule__Connection__UserAssignment_2_2_0_2
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_2_0_2_in_rule__Connection__Group_2_2_0__2__Impl7371);
            rule__Connection__UserAssignment_2_2_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_2_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3741:1: rule__Connection__Group_2_2_1_0__0 : rule__Connection__Group_2_2_1_0__0__Impl rule__Connection__Group_2_2_1_0__1 ;
    public final void rule__Connection__Group_2_2_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3745:1: ( rule__Connection__Group_2_2_1_0__0__Impl rule__Connection__Group_2_2_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3746:2: rule__Connection__Group_2_2_1_0__0__Impl rule__Connection__Group_2_2_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__0__Impl_in_rule__Connection__Group_2_2_1_0__07407);
            rule__Connection__Group_2_2_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__1_in_rule__Connection__Group_2_2_1_0__07410);
            rule__Connection__Group_2_2_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3753:1: rule__Connection__Group_2_2_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_2_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3757:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3758:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3758:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3759:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_2_1_0__0__Impl7438); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3772:1: rule__Connection__Group_2_2_1_0__1 : rule__Connection__Group_2_2_1_0__1__Impl rule__Connection__Group_2_2_1_0__2 ;
    public final void rule__Connection__Group_2_2_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3776:1: ( rule__Connection__Group_2_2_1_0__1__Impl rule__Connection__Group_2_2_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3777:2: rule__Connection__Group_2_2_1_0__1__Impl rule__Connection__Group_2_2_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__1__Impl_in_rule__Connection__Group_2_2_1_0__17469);
            rule__Connection__Group_2_2_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__2_in_rule__Connection__Group_2_2_1_0__17472);
            rule__Connection__Group_2_2_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3784:1: rule__Connection__Group_2_2_1_0__1__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_2_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3788:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3789:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3789:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3790:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_2_1_0_1()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_2_1_0__1__Impl7500); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_2_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3803:1: rule__Connection__Group_2_2_1_0__2 : rule__Connection__Group_2_2_1_0__2__Impl rule__Connection__Group_2_2_1_0__3 ;
    public final void rule__Connection__Group_2_2_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3807:1: ( rule__Connection__Group_2_2_1_0__2__Impl rule__Connection__Group_2_2_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3808:2: rule__Connection__Group_2_2_1_0__2__Impl rule__Connection__Group_2_2_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__2__Impl_in_rule__Connection__Group_2_2_1_0__27531);
            rule__Connection__Group_2_2_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__3_in_rule__Connection__Group_2_2_1_0__27534);
            rule__Connection__Group_2_2_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3815:1: rule__Connection__Group_2_2_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3819:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3820:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3820:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3821:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_1_0__2__Impl7562); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3834:1: rule__Connection__Group_2_2_1_0__3 : rule__Connection__Group_2_2_1_0__3__Impl ;
    public final void rule__Connection__Group_2_2_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3838:1: ( rule__Connection__Group_2_2_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3839:2: rule__Connection__Group_2_2_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__3__Impl_in_rule__Connection__Group_2_2_1_0__37593);
            rule__Connection__Group_2_2_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_2_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3845:1: rule__Connection__Group_2_2_1_0__3__Impl : ( ( rule__Connection__TypeAssignment_2_2_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_2_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3849:1: ( ( ( rule__Connection__TypeAssignment_2_2_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3850:1: ( ( rule__Connection__TypeAssignment_2_2_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3850:1: ( ( rule__Connection__TypeAssignment_2_2_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3851:1: ( rule__Connection__TypeAssignment_2_2_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_2_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3852:1: ( rule__Connection__TypeAssignment_2_2_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3852:2: rule__Connection__TypeAssignment_2_2_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_2_1_0_3_in_rule__Connection__Group_2_2_1_0__3__Impl7620);
            rule__Connection__TypeAssignment_2_2_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_2_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3870:1: rule__Connection__Group_2_2_1_1__0 : rule__Connection__Group_2_2_1_1__0__Impl rule__Connection__Group_2_2_1_1__1 ;
    public final void rule__Connection__Group_2_2_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3874:1: ( rule__Connection__Group_2_2_1_1__0__Impl rule__Connection__Group_2_2_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3875:2: rule__Connection__Group_2_2_1_1__0__Impl rule__Connection__Group_2_2_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__0__Impl_in_rule__Connection__Group_2_2_1_1__07658);
            rule__Connection__Group_2_2_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__1_in_rule__Connection__Group_2_2_1_1__07661);
            rule__Connection__Group_2_2_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3882:1: rule__Connection__Group_2_2_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_2_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3886:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3887:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3887:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3888:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_2_1_1__0__Impl7689); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3901:1: rule__Connection__Group_2_2_1_1__1 : rule__Connection__Group_2_2_1_1__1__Impl rule__Connection__Group_2_2_1_1__2 ;
    public final void rule__Connection__Group_2_2_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3905:1: ( rule__Connection__Group_2_2_1_1__1__Impl rule__Connection__Group_2_2_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3906:2: rule__Connection__Group_2_2_1_1__1__Impl rule__Connection__Group_2_2_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__1__Impl_in_rule__Connection__Group_2_2_1_1__17720);
            rule__Connection__Group_2_2_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__2_in_rule__Connection__Group_2_2_1_1__17723);
            rule__Connection__Group_2_2_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3913:1: rule__Connection__Group_2_2_1_1__1__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_2_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3917:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3918:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3918:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3919:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_2_1_1_1()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_2_1_1__1__Impl7751); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_2_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3932:1: rule__Connection__Group_2_2_1_1__2 : rule__Connection__Group_2_2_1_1__2__Impl rule__Connection__Group_2_2_1_1__3 ;
    public final void rule__Connection__Group_2_2_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3936:1: ( rule__Connection__Group_2_2_1_1__2__Impl rule__Connection__Group_2_2_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3937:2: rule__Connection__Group_2_2_1_1__2__Impl rule__Connection__Group_2_2_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__2__Impl_in_rule__Connection__Group_2_2_1_1__27782);
            rule__Connection__Group_2_2_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__3_in_rule__Connection__Group_2_2_1_1__27785);
            rule__Connection__Group_2_2_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3944:1: rule__Connection__Group_2_2_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3948:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3949:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3949:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3950:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_1_1__2__Impl7813); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3963:1: rule__Connection__Group_2_2_1_1__3 : rule__Connection__Group_2_2_1_1__3__Impl ;
    public final void rule__Connection__Group_2_2_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3967:1: ( rule__Connection__Group_2_2_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3968:2: rule__Connection__Group_2_2_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__3__Impl_in_rule__Connection__Group_2_2_1_1__37844);
            rule__Connection__Group_2_2_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_2_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3974:1: rule__Connection__Group_2_2_1_1__3__Impl : ( ( rule__Connection__DbnameAssignment_2_2_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_2_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3978:1: ( ( ( rule__Connection__DbnameAssignment_2_2_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3979:1: ( ( rule__Connection__DbnameAssignment_2_2_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3979:1: ( ( rule__Connection__DbnameAssignment_2_2_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3980:1: ( rule__Connection__DbnameAssignment_2_2_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_2_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3981:1: ( rule__Connection__DbnameAssignment_2_2_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3981:2: rule__Connection__DbnameAssignment_2_2_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_2_1_1_3_in_rule__Connection__Group_2_2_1_1__3__Impl7871);
            rule__Connection__DbnameAssignment_2_2_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_2_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:3999:1: rule__Connection__Group_2_2_1_2__0 : rule__Connection__Group_2_2_1_2__0__Impl rule__Connection__Group_2_2_1_2__1 ;
    public final void rule__Connection__Group_2_2_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4003:1: ( rule__Connection__Group_2_2_1_2__0__Impl rule__Connection__Group_2_2_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4004:2: rule__Connection__Group_2_2_1_2__0__Impl rule__Connection__Group_2_2_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__0__Impl_in_rule__Connection__Group_2_2_1_2__07909);
            rule__Connection__Group_2_2_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__1_in_rule__Connection__Group_2_2_1_2__07912);
            rule__Connection__Group_2_2_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4011:1: rule__Connection__Group_2_2_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_2_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4015:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4016:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4016:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4017:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_2_1_2__0__Impl7940); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4030:1: rule__Connection__Group_2_2_1_2__1 : rule__Connection__Group_2_2_1_2__1__Impl rule__Connection__Group_2_2_1_2__2 ;
    public final void rule__Connection__Group_2_2_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4034:1: ( rule__Connection__Group_2_2_1_2__1__Impl rule__Connection__Group_2_2_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4035:2: rule__Connection__Group_2_2_1_2__1__Impl rule__Connection__Group_2_2_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__1__Impl_in_rule__Connection__Group_2_2_1_2__17971);
            rule__Connection__Group_2_2_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__2_in_rule__Connection__Group_2_2_1_2__17974);
            rule__Connection__Group_2_2_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4042:1: rule__Connection__Group_2_2_1_2__1__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_2_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4046:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4047:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4047:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4048:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_2_1_2_1()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_2_1_2__1__Impl8002); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_2_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4061:1: rule__Connection__Group_2_2_1_2__2 : rule__Connection__Group_2_2_1_2__2__Impl rule__Connection__Group_2_2_1_2__3 ;
    public final void rule__Connection__Group_2_2_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4065:1: ( rule__Connection__Group_2_2_1_2__2__Impl rule__Connection__Group_2_2_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4066:2: rule__Connection__Group_2_2_1_2__2__Impl rule__Connection__Group_2_2_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__2__Impl_in_rule__Connection__Group_2_2_1_2__28033);
            rule__Connection__Group_2_2_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__3_in_rule__Connection__Group_2_2_1_2__28036);
            rule__Connection__Group_2_2_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4073:1: rule__Connection__Group_2_2_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4077:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4078:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4078:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4079:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_1_2__2__Impl8064); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4092:1: rule__Connection__Group_2_2_1_2__3 : rule__Connection__Group_2_2_1_2__3__Impl ;
    public final void rule__Connection__Group_2_2_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4096:1: ( rule__Connection__Group_2_2_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4097:2: rule__Connection__Group_2_2_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__3__Impl_in_rule__Connection__Group_2_2_1_2__38095);
            rule__Connection__Group_2_2_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_2_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4103:1: rule__Connection__Group_2_2_1_2__3__Impl : ( ( rule__Connection__PasswordAssignment_2_2_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_2_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4107:1: ( ( ( rule__Connection__PasswordAssignment_2_2_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4108:1: ( ( rule__Connection__PasswordAssignment_2_2_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4108:1: ( ( rule__Connection__PasswordAssignment_2_2_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4109:1: ( rule__Connection__PasswordAssignment_2_2_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_2_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4110:1: ( rule__Connection__PasswordAssignment_2_2_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4110:2: rule__Connection__PasswordAssignment_2_2_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_2_1_2_3_in_rule__Connection__Group_2_2_1_2__3__Impl8122);
            rule__Connection__PasswordAssignment_2_2_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_2_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4128:1: rule__Connection__Group_2_2_1_3__0 : rule__Connection__Group_2_2_1_3__0__Impl rule__Connection__Group_2_2_1_3__1 ;
    public final void rule__Connection__Group_2_2_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4132:1: ( rule__Connection__Group_2_2_1_3__0__Impl rule__Connection__Group_2_2_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4133:2: rule__Connection__Group_2_2_1_3__0__Impl rule__Connection__Group_2_2_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__0__Impl_in_rule__Connection__Group_2_2_1_3__08160);
            rule__Connection__Group_2_2_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__1_in_rule__Connection__Group_2_2_1_3__08163);
            rule__Connection__Group_2_2_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4140:1: rule__Connection__Group_2_2_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_2_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4144:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4145:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4145:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4146:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_2_1_3__0__Impl8191); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4159:1: rule__Connection__Group_2_2_1_3__1 : rule__Connection__Group_2_2_1_3__1__Impl rule__Connection__Group_2_2_1_3__2 ;
    public final void rule__Connection__Group_2_2_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4163:1: ( rule__Connection__Group_2_2_1_3__1__Impl rule__Connection__Group_2_2_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4164:2: rule__Connection__Group_2_2_1_3__1__Impl rule__Connection__Group_2_2_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__1__Impl_in_rule__Connection__Group_2_2_1_3__18222);
            rule__Connection__Group_2_2_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__2_in_rule__Connection__Group_2_2_1_3__18225);
            rule__Connection__Group_2_2_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4171:1: rule__Connection__Group_2_2_1_3__1__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_2_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4175:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4176:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4176:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4177:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_2_1_3_1()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_2_1_3__1__Impl8253); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_2_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4190:1: rule__Connection__Group_2_2_1_3__2 : rule__Connection__Group_2_2_1_3__2__Impl rule__Connection__Group_2_2_1_3__3 ;
    public final void rule__Connection__Group_2_2_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4194:1: ( rule__Connection__Group_2_2_1_3__2__Impl rule__Connection__Group_2_2_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4195:2: rule__Connection__Group_2_2_1_3__2__Impl rule__Connection__Group_2_2_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__2__Impl_in_rule__Connection__Group_2_2_1_3__28284);
            rule__Connection__Group_2_2_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__3_in_rule__Connection__Group_2_2_1_3__28287);
            rule__Connection__Group_2_2_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4202:1: rule__Connection__Group_2_2_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4206:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4207:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4207:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4208:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_1_3__2__Impl8315); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4221:1: rule__Connection__Group_2_2_1_3__3 : rule__Connection__Group_2_2_1_3__3__Impl ;
    public final void rule__Connection__Group_2_2_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4225:1: ( rule__Connection__Group_2_2_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4226:2: rule__Connection__Group_2_2_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__3__Impl_in_rule__Connection__Group_2_2_1_3__38346);
            rule__Connection__Group_2_2_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_2_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4232:1: rule__Connection__Group_2_2_1_3__3__Impl : ( ( rule__Connection__UrlAssignment_2_2_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_2_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4236:1: ( ( ( rule__Connection__UrlAssignment_2_2_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4237:1: ( ( rule__Connection__UrlAssignment_2_2_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4237:1: ( ( rule__Connection__UrlAssignment_2_2_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4238:1: ( rule__Connection__UrlAssignment_2_2_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_2_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4239:1: ( rule__Connection__UrlAssignment_2_2_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4239:2: rule__Connection__UrlAssignment_2_2_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_2_1_3_3_in_rule__Connection__Group_2_2_1_3__3__Impl8373);
            rule__Connection__UrlAssignment_2_2_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_2_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4257:1: rule__Connection__Group_2_2_1_4__0 : rule__Connection__Group_2_2_1_4__0__Impl rule__Connection__Group_2_2_1_4__1 ;
    public final void rule__Connection__Group_2_2_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4261:1: ( rule__Connection__Group_2_2_1_4__0__Impl rule__Connection__Group_2_2_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4262:2: rule__Connection__Group_2_2_1_4__0__Impl rule__Connection__Group_2_2_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__0__Impl_in_rule__Connection__Group_2_2_1_4__08411);
            rule__Connection__Group_2_2_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__1_in_rule__Connection__Group_2_2_1_4__08414);
            rule__Connection__Group_2_2_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4269:1: rule__Connection__Group_2_2_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_2_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4273:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4274:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4274:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4275:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_2_1_4__0__Impl8442); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4288:1: rule__Connection__Group_2_2_1_4__1 : rule__Connection__Group_2_2_1_4__1__Impl rule__Connection__Group_2_2_1_4__2 ;
    public final void rule__Connection__Group_2_2_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4292:1: ( rule__Connection__Group_2_2_1_4__1__Impl rule__Connection__Group_2_2_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4293:2: rule__Connection__Group_2_2_1_4__1__Impl rule__Connection__Group_2_2_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__1__Impl_in_rule__Connection__Group_2_2_1_4__18473);
            rule__Connection__Group_2_2_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__2_in_rule__Connection__Group_2_2_1_4__18476);
            rule__Connection__Group_2_2_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4300:1: rule__Connection__Group_2_2_1_4__1__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_2_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4304:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4305:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4305:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4306:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_2_1_4_1()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_2_1_4__1__Impl8504); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_2_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4319:1: rule__Connection__Group_2_2_1_4__2 : rule__Connection__Group_2_2_1_4__2__Impl rule__Connection__Group_2_2_1_4__3 ;
    public final void rule__Connection__Group_2_2_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4323:1: ( rule__Connection__Group_2_2_1_4__2__Impl rule__Connection__Group_2_2_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4324:2: rule__Connection__Group_2_2_1_4__2__Impl rule__Connection__Group_2_2_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__2__Impl_in_rule__Connection__Group_2_2_1_4__28535);
            rule__Connection__Group_2_2_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__3_in_rule__Connection__Group_2_2_1_4__28538);
            rule__Connection__Group_2_2_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4331:1: rule__Connection__Group_2_2_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4335:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4336:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4336:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4337:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_1_4__2__Impl8566); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4350:1: rule__Connection__Group_2_2_1_4__3 : rule__Connection__Group_2_2_1_4__3__Impl ;
    public final void rule__Connection__Group_2_2_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4354:1: ( rule__Connection__Group_2_2_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4355:2: rule__Connection__Group_2_2_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__3__Impl_in_rule__Connection__Group_2_2_1_4__38597);
            rule__Connection__Group_2_2_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_2_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4361:1: rule__Connection__Group_2_2_1_4__3__Impl : ( ( rule__Connection__PortAssignment_2_2_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_2_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4365:1: ( ( ( rule__Connection__PortAssignment_2_2_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4366:1: ( ( rule__Connection__PortAssignment_2_2_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4366:1: ( ( rule__Connection__PortAssignment_2_2_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4367:1: ( rule__Connection__PortAssignment_2_2_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_2_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4368:1: ( rule__Connection__PortAssignment_2_2_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4368:2: rule__Connection__PortAssignment_2_2_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_2_1_4_3_in_rule__Connection__Group_2_2_1_4__3__Impl8624);
            rule__Connection__PortAssignment_2_2_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_2_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4386:1: rule__Connection__Group_2_2_1_5__0 : rule__Connection__Group_2_2_1_5__0__Impl rule__Connection__Group_2_2_1_5__1 ;
    public final void rule__Connection__Group_2_2_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4390:1: ( rule__Connection__Group_2_2_1_5__0__Impl rule__Connection__Group_2_2_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4391:2: rule__Connection__Group_2_2_1_5__0__Impl rule__Connection__Group_2_2_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__0__Impl_in_rule__Connection__Group_2_2_1_5__08662);
            rule__Connection__Group_2_2_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__1_in_rule__Connection__Group_2_2_1_5__08665);
            rule__Connection__Group_2_2_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4398:1: rule__Connection__Group_2_2_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_2_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4402:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4403:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4403:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4404:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_2_1_5__0__Impl8693); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_2_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4417:1: rule__Connection__Group_2_2_1_5__1 : rule__Connection__Group_2_2_1_5__1__Impl rule__Connection__Group_2_2_1_5__2 ;
    public final void rule__Connection__Group_2_2_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4421:1: ( rule__Connection__Group_2_2_1_5__1__Impl rule__Connection__Group_2_2_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4422:2: rule__Connection__Group_2_2_1_5__1__Impl rule__Connection__Group_2_2_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__1__Impl_in_rule__Connection__Group_2_2_1_5__18724);
            rule__Connection__Group_2_2_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__2_in_rule__Connection__Group_2_2_1_5__18727);
            rule__Connection__Group_2_2_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4429:1: rule__Connection__Group_2_2_1_5__1__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_2_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4433:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4434:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4434:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4435:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_2_1_5_1()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_2_1_5__1__Impl8755); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_2_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4448:1: rule__Connection__Group_2_2_1_5__2 : rule__Connection__Group_2_2_1_5__2__Impl rule__Connection__Group_2_2_1_5__3 ;
    public final void rule__Connection__Group_2_2_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4452:1: ( rule__Connection__Group_2_2_1_5__2__Impl rule__Connection__Group_2_2_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4453:2: rule__Connection__Group_2_2_1_5__2__Impl rule__Connection__Group_2_2_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__2__Impl_in_rule__Connection__Group_2_2_1_5__28786);
            rule__Connection__Group_2_2_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__3_in_rule__Connection__Group_2_2_1_5__28789);
            rule__Connection__Group_2_2_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4460:1: rule__Connection__Group_2_2_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_2_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4464:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4465:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4465:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4466:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_2_1_5__2__Impl8817); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_2_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4479:1: rule__Connection__Group_2_2_1_5__3 : rule__Connection__Group_2_2_1_5__3__Impl ;
    public final void rule__Connection__Group_2_2_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4483:1: ( rule__Connection__Group_2_2_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4484:2: rule__Connection__Group_2_2_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__3__Impl_in_rule__Connection__Group_2_2_1_5__38848);
            rule__Connection__Group_2_2_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_2_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4490:1: rule__Connection__Group_2_2_1_5__3__Impl : ( ( rule__Connection__PoolsizeAssignment_2_2_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_2_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4494:1: ( ( ( rule__Connection__PoolsizeAssignment_2_2_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4495:1: ( ( rule__Connection__PoolsizeAssignment_2_2_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4495:1: ( ( rule__Connection__PoolsizeAssignment_2_2_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4496:1: ( rule__Connection__PoolsizeAssignment_2_2_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_2_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4497:1: ( rule__Connection__PoolsizeAssignment_2_2_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4497:2: rule__Connection__PoolsizeAssignment_2_2_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_2_1_5_3_in_rule__Connection__Group_2_2_1_5__3__Impl8875);
            rule__Connection__PoolsizeAssignment_2_2_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_2_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_2_1_5__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4515:1: rule__Connection__Group_2_3__0 : rule__Connection__Group_2_3__0__Impl rule__Connection__Group_2_3__1 ;
    public final void rule__Connection__Group_2_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4519:1: ( rule__Connection__Group_2_3__0__Impl rule__Connection__Group_2_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4520:2: rule__Connection__Group_2_3__0__Impl rule__Connection__Group_2_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3__0__Impl_in_rule__Connection__Group_2_3__08913);
            rule__Connection__Group_2_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3__1_in_rule__Connection__Group_2_3__08916);
            rule__Connection__Group_2_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3__0"


    // $ANTLR start "rule__Connection__Group_2_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4527:1: rule__Connection__Group_2_3__0__Impl : ( ( rule__Connection__Group_2_3_0__0 ) ) ;
    public final void rule__Connection__Group_2_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4531:1: ( ( ( rule__Connection__Group_2_3_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4532:1: ( ( rule__Connection__Group_2_3_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4532:1: ( ( rule__Connection__Group_2_3_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4533:1: ( rule__Connection__Group_2_3_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_3_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4534:1: ( rule__Connection__Group_2_3_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4534:2: rule__Connection__Group_2_3_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_0__0_in_rule__Connection__Group_2_3__0__Impl8943);
            rule__Connection__Group_2_3_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4544:1: rule__Connection__Group_2_3__1 : rule__Connection__Group_2_3__1__Impl ;
    public final void rule__Connection__Group_2_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4548:1: ( rule__Connection__Group_2_3__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4549:2: rule__Connection__Group_2_3__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3__1__Impl_in_rule__Connection__Group_2_3__18973);
            rule__Connection__Group_2_3__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3__1"


    // $ANTLR start "rule__Connection__Group_2_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4555:1: rule__Connection__Group_2_3__1__Impl : ( ( rule__Connection__UnorderedGroup_2_3_1 ) ) ;
    public final void rule__Connection__Group_2_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4559:1: ( ( ( rule__Connection__UnorderedGroup_2_3_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4560:1: ( ( rule__Connection__UnorderedGroup_2_3_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4560:1: ( ( rule__Connection__UnorderedGroup_2_3_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4561:1: ( rule__Connection__UnorderedGroup_2_3_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4562:1: ( rule__Connection__UnorderedGroup_2_3_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4562:2: rule__Connection__UnorderedGroup_2_3_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1_in_rule__Connection__Group_2_3__1__Impl9000);
            rule__Connection__UnorderedGroup_2_3_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4576:1: rule__Connection__Group_2_3_0__0 : rule__Connection__Group_2_3_0__0__Impl rule__Connection__Group_2_3_0__1 ;
    public final void rule__Connection__Group_2_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4580:1: ( rule__Connection__Group_2_3_0__0__Impl rule__Connection__Group_2_3_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4581:2: rule__Connection__Group_2_3_0__0__Impl rule__Connection__Group_2_3_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_0__0__Impl_in_rule__Connection__Group_2_3_0__09034);
            rule__Connection__Group_2_3_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_0__1_in_rule__Connection__Group_2_3_0__09037);
            rule__Connection__Group_2_3_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_0__0"


    // $ANTLR start "rule__Connection__Group_2_3_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4588:1: rule__Connection__Group_2_3_0__0__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4592:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4593:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4593:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4594:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_3_0_0()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_3_0__0__Impl9065); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_3_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4607:1: rule__Connection__Group_2_3_0__1 : rule__Connection__Group_2_3_0__1__Impl rule__Connection__Group_2_3_0__2 ;
    public final void rule__Connection__Group_2_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4611:1: ( rule__Connection__Group_2_3_0__1__Impl rule__Connection__Group_2_3_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4612:2: rule__Connection__Group_2_3_0__1__Impl rule__Connection__Group_2_3_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_0__1__Impl_in_rule__Connection__Group_2_3_0__19096);
            rule__Connection__Group_2_3_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_0__2_in_rule__Connection__Group_2_3_0__19099);
            rule__Connection__Group_2_3_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_0__1"


    // $ANTLR start "rule__Connection__Group_2_3_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4619:1: rule__Connection__Group_2_3_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4623:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4624:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4624:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4625:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_0__1__Impl9127); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4638:1: rule__Connection__Group_2_3_0__2 : rule__Connection__Group_2_3_0__2__Impl ;
    public final void rule__Connection__Group_2_3_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4642:1: ( rule__Connection__Group_2_3_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4643:2: rule__Connection__Group_2_3_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_0__2__Impl_in_rule__Connection__Group_2_3_0__29158);
            rule__Connection__Group_2_3_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_0__2"


    // $ANTLR start "rule__Connection__Group_2_3_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4649:1: rule__Connection__Group_2_3_0__2__Impl : ( ( rule__Connection__PasswordAssignment_2_3_0_2 ) ) ;
    public final void rule__Connection__Group_2_3_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4653:1: ( ( ( rule__Connection__PasswordAssignment_2_3_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4654:1: ( ( rule__Connection__PasswordAssignment_2_3_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4654:1: ( ( rule__Connection__PasswordAssignment_2_3_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4655:1: ( rule__Connection__PasswordAssignment_2_3_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_3_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4656:1: ( rule__Connection__PasswordAssignment_2_3_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4656:2: rule__Connection__PasswordAssignment_2_3_0_2
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_3_0_2_in_rule__Connection__Group_2_3_0__2__Impl9185);
            rule__Connection__PasswordAssignment_2_3_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_3_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4672:1: rule__Connection__Group_2_3_1_0__0 : rule__Connection__Group_2_3_1_0__0__Impl rule__Connection__Group_2_3_1_0__1 ;
    public final void rule__Connection__Group_2_3_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4676:1: ( rule__Connection__Group_2_3_1_0__0__Impl rule__Connection__Group_2_3_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4677:2: rule__Connection__Group_2_3_1_0__0__Impl rule__Connection__Group_2_3_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__0__Impl_in_rule__Connection__Group_2_3_1_0__09221);
            rule__Connection__Group_2_3_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__1_in_rule__Connection__Group_2_3_1_0__09224);
            rule__Connection__Group_2_3_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4684:1: rule__Connection__Group_2_3_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_3_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4688:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4689:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4689:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4690:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_3_1_0__0__Impl9252); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4703:1: rule__Connection__Group_2_3_1_0__1 : rule__Connection__Group_2_3_1_0__1__Impl rule__Connection__Group_2_3_1_0__2 ;
    public final void rule__Connection__Group_2_3_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4707:1: ( rule__Connection__Group_2_3_1_0__1__Impl rule__Connection__Group_2_3_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4708:2: rule__Connection__Group_2_3_1_0__1__Impl rule__Connection__Group_2_3_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__1__Impl_in_rule__Connection__Group_2_3_1_0__19283);
            rule__Connection__Group_2_3_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__2_in_rule__Connection__Group_2_3_1_0__19286);
            rule__Connection__Group_2_3_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4715:1: rule__Connection__Group_2_3_1_0__1__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_3_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4719:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4720:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4720:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4721:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_3_1_0_1()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_3_1_0__1__Impl9314); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_3_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4734:1: rule__Connection__Group_2_3_1_0__2 : rule__Connection__Group_2_3_1_0__2__Impl rule__Connection__Group_2_3_1_0__3 ;
    public final void rule__Connection__Group_2_3_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4738:1: ( rule__Connection__Group_2_3_1_0__2__Impl rule__Connection__Group_2_3_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4739:2: rule__Connection__Group_2_3_1_0__2__Impl rule__Connection__Group_2_3_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__2__Impl_in_rule__Connection__Group_2_3_1_0__29345);
            rule__Connection__Group_2_3_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__3_in_rule__Connection__Group_2_3_1_0__29348);
            rule__Connection__Group_2_3_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4746:1: rule__Connection__Group_2_3_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4750:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4751:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4751:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4752:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_1_0__2__Impl9376); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4765:1: rule__Connection__Group_2_3_1_0__3 : rule__Connection__Group_2_3_1_0__3__Impl ;
    public final void rule__Connection__Group_2_3_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4769:1: ( rule__Connection__Group_2_3_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4770:2: rule__Connection__Group_2_3_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__3__Impl_in_rule__Connection__Group_2_3_1_0__39407);
            rule__Connection__Group_2_3_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_3_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4776:1: rule__Connection__Group_2_3_1_0__3__Impl : ( ( rule__Connection__TypeAssignment_2_3_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_3_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4780:1: ( ( ( rule__Connection__TypeAssignment_2_3_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4781:1: ( ( rule__Connection__TypeAssignment_2_3_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4781:1: ( ( rule__Connection__TypeAssignment_2_3_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4782:1: ( rule__Connection__TypeAssignment_2_3_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_3_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4783:1: ( rule__Connection__TypeAssignment_2_3_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4783:2: rule__Connection__TypeAssignment_2_3_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_3_1_0_3_in_rule__Connection__Group_2_3_1_0__3__Impl9434);
            rule__Connection__TypeAssignment_2_3_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_3_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4801:1: rule__Connection__Group_2_3_1_1__0 : rule__Connection__Group_2_3_1_1__0__Impl rule__Connection__Group_2_3_1_1__1 ;
    public final void rule__Connection__Group_2_3_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4805:1: ( rule__Connection__Group_2_3_1_1__0__Impl rule__Connection__Group_2_3_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4806:2: rule__Connection__Group_2_3_1_1__0__Impl rule__Connection__Group_2_3_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__0__Impl_in_rule__Connection__Group_2_3_1_1__09472);
            rule__Connection__Group_2_3_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__1_in_rule__Connection__Group_2_3_1_1__09475);
            rule__Connection__Group_2_3_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4813:1: rule__Connection__Group_2_3_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_3_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4817:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4818:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4818:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4819:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_3_1_1__0__Impl9503); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4832:1: rule__Connection__Group_2_3_1_1__1 : rule__Connection__Group_2_3_1_1__1__Impl rule__Connection__Group_2_3_1_1__2 ;
    public final void rule__Connection__Group_2_3_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4836:1: ( rule__Connection__Group_2_3_1_1__1__Impl rule__Connection__Group_2_3_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4837:2: rule__Connection__Group_2_3_1_1__1__Impl rule__Connection__Group_2_3_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__1__Impl_in_rule__Connection__Group_2_3_1_1__19534);
            rule__Connection__Group_2_3_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__2_in_rule__Connection__Group_2_3_1_1__19537);
            rule__Connection__Group_2_3_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4844:1: rule__Connection__Group_2_3_1_1__1__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_3_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4848:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4849:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4849:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4850:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_3_1_1_1()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_3_1_1__1__Impl9565); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_3_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4863:1: rule__Connection__Group_2_3_1_1__2 : rule__Connection__Group_2_3_1_1__2__Impl rule__Connection__Group_2_3_1_1__3 ;
    public final void rule__Connection__Group_2_3_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4867:1: ( rule__Connection__Group_2_3_1_1__2__Impl rule__Connection__Group_2_3_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4868:2: rule__Connection__Group_2_3_1_1__2__Impl rule__Connection__Group_2_3_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__2__Impl_in_rule__Connection__Group_2_3_1_1__29596);
            rule__Connection__Group_2_3_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__3_in_rule__Connection__Group_2_3_1_1__29599);
            rule__Connection__Group_2_3_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4875:1: rule__Connection__Group_2_3_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4879:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4880:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4880:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4881:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_1_1__2__Impl9627); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4894:1: rule__Connection__Group_2_3_1_1__3 : rule__Connection__Group_2_3_1_1__3__Impl ;
    public final void rule__Connection__Group_2_3_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4898:1: ( rule__Connection__Group_2_3_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4899:2: rule__Connection__Group_2_3_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__3__Impl_in_rule__Connection__Group_2_3_1_1__39658);
            rule__Connection__Group_2_3_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_3_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4905:1: rule__Connection__Group_2_3_1_1__3__Impl : ( ( rule__Connection__DbnameAssignment_2_3_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_3_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4909:1: ( ( ( rule__Connection__DbnameAssignment_2_3_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4910:1: ( ( rule__Connection__DbnameAssignment_2_3_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4910:1: ( ( rule__Connection__DbnameAssignment_2_3_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4911:1: ( rule__Connection__DbnameAssignment_2_3_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_3_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4912:1: ( rule__Connection__DbnameAssignment_2_3_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4912:2: rule__Connection__DbnameAssignment_2_3_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_3_1_1_3_in_rule__Connection__Group_2_3_1_1__3__Impl9685);
            rule__Connection__DbnameAssignment_2_3_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_3_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4930:1: rule__Connection__Group_2_3_1_2__0 : rule__Connection__Group_2_3_1_2__0__Impl rule__Connection__Group_2_3_1_2__1 ;
    public final void rule__Connection__Group_2_3_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4934:1: ( rule__Connection__Group_2_3_1_2__0__Impl rule__Connection__Group_2_3_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4935:2: rule__Connection__Group_2_3_1_2__0__Impl rule__Connection__Group_2_3_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__0__Impl_in_rule__Connection__Group_2_3_1_2__09723);
            rule__Connection__Group_2_3_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__1_in_rule__Connection__Group_2_3_1_2__09726);
            rule__Connection__Group_2_3_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4942:1: rule__Connection__Group_2_3_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_3_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4946:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4947:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4947:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4948:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_3_1_2__0__Impl9754); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4961:1: rule__Connection__Group_2_3_1_2__1 : rule__Connection__Group_2_3_1_2__1__Impl rule__Connection__Group_2_3_1_2__2 ;
    public final void rule__Connection__Group_2_3_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4965:1: ( rule__Connection__Group_2_3_1_2__1__Impl rule__Connection__Group_2_3_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4966:2: rule__Connection__Group_2_3_1_2__1__Impl rule__Connection__Group_2_3_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__1__Impl_in_rule__Connection__Group_2_3_1_2__19785);
            rule__Connection__Group_2_3_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__2_in_rule__Connection__Group_2_3_1_2__19788);
            rule__Connection__Group_2_3_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4973:1: rule__Connection__Group_2_3_1_2__1__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_3_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4977:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4978:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4978:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4979:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_3_1_2_1()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_3_1_2__1__Impl9816); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_3_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4992:1: rule__Connection__Group_2_3_1_2__2 : rule__Connection__Group_2_3_1_2__2__Impl rule__Connection__Group_2_3_1_2__3 ;
    public final void rule__Connection__Group_2_3_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4996:1: ( rule__Connection__Group_2_3_1_2__2__Impl rule__Connection__Group_2_3_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:4997:2: rule__Connection__Group_2_3_1_2__2__Impl rule__Connection__Group_2_3_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__2__Impl_in_rule__Connection__Group_2_3_1_2__29847);
            rule__Connection__Group_2_3_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__3_in_rule__Connection__Group_2_3_1_2__29850);
            rule__Connection__Group_2_3_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5004:1: rule__Connection__Group_2_3_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5008:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5009:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5009:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5010:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_1_2__2__Impl9878); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5023:1: rule__Connection__Group_2_3_1_2__3 : rule__Connection__Group_2_3_1_2__3__Impl ;
    public final void rule__Connection__Group_2_3_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5027:1: ( rule__Connection__Group_2_3_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5028:2: rule__Connection__Group_2_3_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__3__Impl_in_rule__Connection__Group_2_3_1_2__39909);
            rule__Connection__Group_2_3_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_3_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5034:1: rule__Connection__Group_2_3_1_2__3__Impl : ( ( rule__Connection__UserAssignment_2_3_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_3_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5038:1: ( ( ( rule__Connection__UserAssignment_2_3_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5039:1: ( ( rule__Connection__UserAssignment_2_3_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5039:1: ( ( rule__Connection__UserAssignment_2_3_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5040:1: ( rule__Connection__UserAssignment_2_3_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_3_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5041:1: ( rule__Connection__UserAssignment_2_3_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5041:2: rule__Connection__UserAssignment_2_3_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_3_1_2_3_in_rule__Connection__Group_2_3_1_2__3__Impl9936);
            rule__Connection__UserAssignment_2_3_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_3_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5059:1: rule__Connection__Group_2_3_1_3__0 : rule__Connection__Group_2_3_1_3__0__Impl rule__Connection__Group_2_3_1_3__1 ;
    public final void rule__Connection__Group_2_3_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5063:1: ( rule__Connection__Group_2_3_1_3__0__Impl rule__Connection__Group_2_3_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5064:2: rule__Connection__Group_2_3_1_3__0__Impl rule__Connection__Group_2_3_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__0__Impl_in_rule__Connection__Group_2_3_1_3__09974);
            rule__Connection__Group_2_3_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__1_in_rule__Connection__Group_2_3_1_3__09977);
            rule__Connection__Group_2_3_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5071:1: rule__Connection__Group_2_3_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_3_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5075:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5076:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5076:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5077:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_3_1_3__0__Impl10005); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5090:1: rule__Connection__Group_2_3_1_3__1 : rule__Connection__Group_2_3_1_3__1__Impl rule__Connection__Group_2_3_1_3__2 ;
    public final void rule__Connection__Group_2_3_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5094:1: ( rule__Connection__Group_2_3_1_3__1__Impl rule__Connection__Group_2_3_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5095:2: rule__Connection__Group_2_3_1_3__1__Impl rule__Connection__Group_2_3_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__1__Impl_in_rule__Connection__Group_2_3_1_3__110036);
            rule__Connection__Group_2_3_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__2_in_rule__Connection__Group_2_3_1_3__110039);
            rule__Connection__Group_2_3_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5102:1: rule__Connection__Group_2_3_1_3__1__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_3_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5106:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5107:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5107:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5108:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_3_1_3_1()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_3_1_3__1__Impl10067); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_3_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5121:1: rule__Connection__Group_2_3_1_3__2 : rule__Connection__Group_2_3_1_3__2__Impl rule__Connection__Group_2_3_1_3__3 ;
    public final void rule__Connection__Group_2_3_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5125:1: ( rule__Connection__Group_2_3_1_3__2__Impl rule__Connection__Group_2_3_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5126:2: rule__Connection__Group_2_3_1_3__2__Impl rule__Connection__Group_2_3_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__2__Impl_in_rule__Connection__Group_2_3_1_3__210098);
            rule__Connection__Group_2_3_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__3_in_rule__Connection__Group_2_3_1_3__210101);
            rule__Connection__Group_2_3_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5133:1: rule__Connection__Group_2_3_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5137:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5138:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5138:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5139:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_1_3__2__Impl10129); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5152:1: rule__Connection__Group_2_3_1_3__3 : rule__Connection__Group_2_3_1_3__3__Impl ;
    public final void rule__Connection__Group_2_3_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5156:1: ( rule__Connection__Group_2_3_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5157:2: rule__Connection__Group_2_3_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__3__Impl_in_rule__Connection__Group_2_3_1_3__310160);
            rule__Connection__Group_2_3_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_3_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5163:1: rule__Connection__Group_2_3_1_3__3__Impl : ( ( rule__Connection__UrlAssignment_2_3_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_3_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5167:1: ( ( ( rule__Connection__UrlAssignment_2_3_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5168:1: ( ( rule__Connection__UrlAssignment_2_3_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5168:1: ( ( rule__Connection__UrlAssignment_2_3_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5169:1: ( rule__Connection__UrlAssignment_2_3_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_3_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5170:1: ( rule__Connection__UrlAssignment_2_3_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5170:2: rule__Connection__UrlAssignment_2_3_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_3_1_3_3_in_rule__Connection__Group_2_3_1_3__3__Impl10187);
            rule__Connection__UrlAssignment_2_3_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_3_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5188:1: rule__Connection__Group_2_3_1_4__0 : rule__Connection__Group_2_3_1_4__0__Impl rule__Connection__Group_2_3_1_4__1 ;
    public final void rule__Connection__Group_2_3_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5192:1: ( rule__Connection__Group_2_3_1_4__0__Impl rule__Connection__Group_2_3_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5193:2: rule__Connection__Group_2_3_1_4__0__Impl rule__Connection__Group_2_3_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__0__Impl_in_rule__Connection__Group_2_3_1_4__010225);
            rule__Connection__Group_2_3_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__1_in_rule__Connection__Group_2_3_1_4__010228);
            rule__Connection__Group_2_3_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5200:1: rule__Connection__Group_2_3_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_3_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5204:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5205:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5205:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5206:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_3_1_4__0__Impl10256); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5219:1: rule__Connection__Group_2_3_1_4__1 : rule__Connection__Group_2_3_1_4__1__Impl rule__Connection__Group_2_3_1_4__2 ;
    public final void rule__Connection__Group_2_3_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5223:1: ( rule__Connection__Group_2_3_1_4__1__Impl rule__Connection__Group_2_3_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5224:2: rule__Connection__Group_2_3_1_4__1__Impl rule__Connection__Group_2_3_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__1__Impl_in_rule__Connection__Group_2_3_1_4__110287);
            rule__Connection__Group_2_3_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__2_in_rule__Connection__Group_2_3_1_4__110290);
            rule__Connection__Group_2_3_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5231:1: rule__Connection__Group_2_3_1_4__1__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_3_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5235:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5236:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5236:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5237:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_3_1_4_1()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_3_1_4__1__Impl10318); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_3_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5250:1: rule__Connection__Group_2_3_1_4__2 : rule__Connection__Group_2_3_1_4__2__Impl rule__Connection__Group_2_3_1_4__3 ;
    public final void rule__Connection__Group_2_3_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5254:1: ( rule__Connection__Group_2_3_1_4__2__Impl rule__Connection__Group_2_3_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5255:2: rule__Connection__Group_2_3_1_4__2__Impl rule__Connection__Group_2_3_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__2__Impl_in_rule__Connection__Group_2_3_1_4__210349);
            rule__Connection__Group_2_3_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__3_in_rule__Connection__Group_2_3_1_4__210352);
            rule__Connection__Group_2_3_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5262:1: rule__Connection__Group_2_3_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5266:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5267:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5267:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5268:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_1_4__2__Impl10380); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5281:1: rule__Connection__Group_2_3_1_4__3 : rule__Connection__Group_2_3_1_4__3__Impl ;
    public final void rule__Connection__Group_2_3_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5285:1: ( rule__Connection__Group_2_3_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5286:2: rule__Connection__Group_2_3_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__3__Impl_in_rule__Connection__Group_2_3_1_4__310411);
            rule__Connection__Group_2_3_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_3_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5292:1: rule__Connection__Group_2_3_1_4__3__Impl : ( ( rule__Connection__PortAssignment_2_3_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_3_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5296:1: ( ( ( rule__Connection__PortAssignment_2_3_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5297:1: ( ( rule__Connection__PortAssignment_2_3_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5297:1: ( ( rule__Connection__PortAssignment_2_3_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5298:1: ( rule__Connection__PortAssignment_2_3_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_3_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5299:1: ( rule__Connection__PortAssignment_2_3_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5299:2: rule__Connection__PortAssignment_2_3_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_3_1_4_3_in_rule__Connection__Group_2_3_1_4__3__Impl10438);
            rule__Connection__PortAssignment_2_3_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_3_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5317:1: rule__Connection__Group_2_3_1_5__0 : rule__Connection__Group_2_3_1_5__0__Impl rule__Connection__Group_2_3_1_5__1 ;
    public final void rule__Connection__Group_2_3_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5321:1: ( rule__Connection__Group_2_3_1_5__0__Impl rule__Connection__Group_2_3_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5322:2: rule__Connection__Group_2_3_1_5__0__Impl rule__Connection__Group_2_3_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__0__Impl_in_rule__Connection__Group_2_3_1_5__010476);
            rule__Connection__Group_2_3_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__1_in_rule__Connection__Group_2_3_1_5__010479);
            rule__Connection__Group_2_3_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5329:1: rule__Connection__Group_2_3_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_3_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5333:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5334:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5334:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5335:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_3_1_5__0__Impl10507); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_3_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5348:1: rule__Connection__Group_2_3_1_5__1 : rule__Connection__Group_2_3_1_5__1__Impl rule__Connection__Group_2_3_1_5__2 ;
    public final void rule__Connection__Group_2_3_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5352:1: ( rule__Connection__Group_2_3_1_5__1__Impl rule__Connection__Group_2_3_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5353:2: rule__Connection__Group_2_3_1_5__1__Impl rule__Connection__Group_2_3_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__1__Impl_in_rule__Connection__Group_2_3_1_5__110538);
            rule__Connection__Group_2_3_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__2_in_rule__Connection__Group_2_3_1_5__110541);
            rule__Connection__Group_2_3_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5360:1: rule__Connection__Group_2_3_1_5__1__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_3_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5364:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5365:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5365:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5366:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_3_1_5_1()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_3_1_5__1__Impl10569); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_3_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5379:1: rule__Connection__Group_2_3_1_5__2 : rule__Connection__Group_2_3_1_5__2__Impl rule__Connection__Group_2_3_1_5__3 ;
    public final void rule__Connection__Group_2_3_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5383:1: ( rule__Connection__Group_2_3_1_5__2__Impl rule__Connection__Group_2_3_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5384:2: rule__Connection__Group_2_3_1_5__2__Impl rule__Connection__Group_2_3_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__2__Impl_in_rule__Connection__Group_2_3_1_5__210600);
            rule__Connection__Group_2_3_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__3_in_rule__Connection__Group_2_3_1_5__210603);
            rule__Connection__Group_2_3_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5391:1: rule__Connection__Group_2_3_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_3_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5395:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5396:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5396:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5397:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_3_1_5__2__Impl10631); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_3_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5410:1: rule__Connection__Group_2_3_1_5__3 : rule__Connection__Group_2_3_1_5__3__Impl ;
    public final void rule__Connection__Group_2_3_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5414:1: ( rule__Connection__Group_2_3_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5415:2: rule__Connection__Group_2_3_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__3__Impl_in_rule__Connection__Group_2_3_1_5__310662);
            rule__Connection__Group_2_3_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_3_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5421:1: rule__Connection__Group_2_3_1_5__3__Impl : ( ( rule__Connection__PoolsizeAssignment_2_3_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_3_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5425:1: ( ( ( rule__Connection__PoolsizeAssignment_2_3_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5426:1: ( ( rule__Connection__PoolsizeAssignment_2_3_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5426:1: ( ( rule__Connection__PoolsizeAssignment_2_3_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5427:1: ( rule__Connection__PoolsizeAssignment_2_3_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_3_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5428:1: ( rule__Connection__PoolsizeAssignment_2_3_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5428:2: rule__Connection__PoolsizeAssignment_2_3_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_3_1_5_3_in_rule__Connection__Group_2_3_1_5__3__Impl10689);
            rule__Connection__PoolsizeAssignment_2_3_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_3_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_3_1_5__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5446:1: rule__Connection__Group_2_4__0 : rule__Connection__Group_2_4__0__Impl rule__Connection__Group_2_4__1 ;
    public final void rule__Connection__Group_2_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5450:1: ( rule__Connection__Group_2_4__0__Impl rule__Connection__Group_2_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5451:2: rule__Connection__Group_2_4__0__Impl rule__Connection__Group_2_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4__0__Impl_in_rule__Connection__Group_2_4__010727);
            rule__Connection__Group_2_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4__1_in_rule__Connection__Group_2_4__010730);
            rule__Connection__Group_2_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4__0"


    // $ANTLR start "rule__Connection__Group_2_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5458:1: rule__Connection__Group_2_4__0__Impl : ( ( rule__Connection__Group_2_4_0__0 ) ) ;
    public final void rule__Connection__Group_2_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5462:1: ( ( ( rule__Connection__Group_2_4_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5463:1: ( ( rule__Connection__Group_2_4_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5463:1: ( ( rule__Connection__Group_2_4_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5464:1: ( rule__Connection__Group_2_4_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_4_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5465:1: ( rule__Connection__Group_2_4_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5465:2: rule__Connection__Group_2_4_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_0__0_in_rule__Connection__Group_2_4__0__Impl10757);
            rule__Connection__Group_2_4_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5475:1: rule__Connection__Group_2_4__1 : rule__Connection__Group_2_4__1__Impl ;
    public final void rule__Connection__Group_2_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5479:1: ( rule__Connection__Group_2_4__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5480:2: rule__Connection__Group_2_4__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4__1__Impl_in_rule__Connection__Group_2_4__110787);
            rule__Connection__Group_2_4__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4__1"


    // $ANTLR start "rule__Connection__Group_2_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5486:1: rule__Connection__Group_2_4__1__Impl : ( ( rule__Connection__UnorderedGroup_2_4_1 ) ) ;
    public final void rule__Connection__Group_2_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5490:1: ( ( ( rule__Connection__UnorderedGroup_2_4_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5491:1: ( ( rule__Connection__UnorderedGroup_2_4_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5491:1: ( ( rule__Connection__UnorderedGroup_2_4_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5492:1: ( rule__Connection__UnorderedGroup_2_4_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5493:1: ( rule__Connection__UnorderedGroup_2_4_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5493:2: rule__Connection__UnorderedGroup_2_4_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1_in_rule__Connection__Group_2_4__1__Impl10814);
            rule__Connection__UnorderedGroup_2_4_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5507:1: rule__Connection__Group_2_4_0__0 : rule__Connection__Group_2_4_0__0__Impl rule__Connection__Group_2_4_0__1 ;
    public final void rule__Connection__Group_2_4_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5511:1: ( rule__Connection__Group_2_4_0__0__Impl rule__Connection__Group_2_4_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5512:2: rule__Connection__Group_2_4_0__0__Impl rule__Connection__Group_2_4_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_0__0__Impl_in_rule__Connection__Group_2_4_0__010848);
            rule__Connection__Group_2_4_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_0__1_in_rule__Connection__Group_2_4_0__010851);
            rule__Connection__Group_2_4_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_0__0"


    // $ANTLR start "rule__Connection__Group_2_4_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5519:1: rule__Connection__Group_2_4_0__0__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_4_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5523:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5524:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5524:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5525:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_4_0_0()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_4_0__0__Impl10879); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_4_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5538:1: rule__Connection__Group_2_4_0__1 : rule__Connection__Group_2_4_0__1__Impl rule__Connection__Group_2_4_0__2 ;
    public final void rule__Connection__Group_2_4_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5542:1: ( rule__Connection__Group_2_4_0__1__Impl rule__Connection__Group_2_4_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5543:2: rule__Connection__Group_2_4_0__1__Impl rule__Connection__Group_2_4_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_0__1__Impl_in_rule__Connection__Group_2_4_0__110910);
            rule__Connection__Group_2_4_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_0__2_in_rule__Connection__Group_2_4_0__110913);
            rule__Connection__Group_2_4_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_0__1"


    // $ANTLR start "rule__Connection__Group_2_4_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5550:1: rule__Connection__Group_2_4_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5554:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5555:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5555:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5556:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_0__1__Impl10941); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5569:1: rule__Connection__Group_2_4_0__2 : rule__Connection__Group_2_4_0__2__Impl ;
    public final void rule__Connection__Group_2_4_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5573:1: ( rule__Connection__Group_2_4_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5574:2: rule__Connection__Group_2_4_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_0__2__Impl_in_rule__Connection__Group_2_4_0__210972);
            rule__Connection__Group_2_4_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_0__2"


    // $ANTLR start "rule__Connection__Group_2_4_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5580:1: rule__Connection__Group_2_4_0__2__Impl : ( ( rule__Connection__UrlAssignment_2_4_0_2 ) ) ;
    public final void rule__Connection__Group_2_4_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5584:1: ( ( ( rule__Connection__UrlAssignment_2_4_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5585:1: ( ( rule__Connection__UrlAssignment_2_4_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5585:1: ( ( rule__Connection__UrlAssignment_2_4_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5586:1: ( rule__Connection__UrlAssignment_2_4_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_4_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5587:1: ( rule__Connection__UrlAssignment_2_4_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5587:2: rule__Connection__UrlAssignment_2_4_0_2
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_4_0_2_in_rule__Connection__Group_2_4_0__2__Impl10999);
            rule__Connection__UrlAssignment_2_4_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_4_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5603:1: rule__Connection__Group_2_4_1_0__0 : rule__Connection__Group_2_4_1_0__0__Impl rule__Connection__Group_2_4_1_0__1 ;
    public final void rule__Connection__Group_2_4_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5607:1: ( rule__Connection__Group_2_4_1_0__0__Impl rule__Connection__Group_2_4_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5608:2: rule__Connection__Group_2_4_1_0__0__Impl rule__Connection__Group_2_4_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__0__Impl_in_rule__Connection__Group_2_4_1_0__011035);
            rule__Connection__Group_2_4_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__1_in_rule__Connection__Group_2_4_1_0__011038);
            rule__Connection__Group_2_4_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5615:1: rule__Connection__Group_2_4_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_4_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5619:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5620:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5620:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5621:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_4_1_0__0__Impl11066); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5634:1: rule__Connection__Group_2_4_1_0__1 : rule__Connection__Group_2_4_1_0__1__Impl rule__Connection__Group_2_4_1_0__2 ;
    public final void rule__Connection__Group_2_4_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5638:1: ( rule__Connection__Group_2_4_1_0__1__Impl rule__Connection__Group_2_4_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5639:2: rule__Connection__Group_2_4_1_0__1__Impl rule__Connection__Group_2_4_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__1__Impl_in_rule__Connection__Group_2_4_1_0__111097);
            rule__Connection__Group_2_4_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__2_in_rule__Connection__Group_2_4_1_0__111100);
            rule__Connection__Group_2_4_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5646:1: rule__Connection__Group_2_4_1_0__1__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_4_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5650:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5651:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5651:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5652:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_4_1_0_1()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_4_1_0__1__Impl11128); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_4_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5665:1: rule__Connection__Group_2_4_1_0__2 : rule__Connection__Group_2_4_1_0__2__Impl rule__Connection__Group_2_4_1_0__3 ;
    public final void rule__Connection__Group_2_4_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5669:1: ( rule__Connection__Group_2_4_1_0__2__Impl rule__Connection__Group_2_4_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5670:2: rule__Connection__Group_2_4_1_0__2__Impl rule__Connection__Group_2_4_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__2__Impl_in_rule__Connection__Group_2_4_1_0__211159);
            rule__Connection__Group_2_4_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__3_in_rule__Connection__Group_2_4_1_0__211162);
            rule__Connection__Group_2_4_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5677:1: rule__Connection__Group_2_4_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5681:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5682:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5682:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5683:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_1_0__2__Impl11190); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5696:1: rule__Connection__Group_2_4_1_0__3 : rule__Connection__Group_2_4_1_0__3__Impl ;
    public final void rule__Connection__Group_2_4_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5700:1: ( rule__Connection__Group_2_4_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5701:2: rule__Connection__Group_2_4_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__3__Impl_in_rule__Connection__Group_2_4_1_0__311221);
            rule__Connection__Group_2_4_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_4_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5707:1: rule__Connection__Group_2_4_1_0__3__Impl : ( ( rule__Connection__TypeAssignment_2_4_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_4_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5711:1: ( ( ( rule__Connection__TypeAssignment_2_4_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5712:1: ( ( rule__Connection__TypeAssignment_2_4_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5712:1: ( ( rule__Connection__TypeAssignment_2_4_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5713:1: ( rule__Connection__TypeAssignment_2_4_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_4_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5714:1: ( rule__Connection__TypeAssignment_2_4_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5714:2: rule__Connection__TypeAssignment_2_4_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_4_1_0_3_in_rule__Connection__Group_2_4_1_0__3__Impl11248);
            rule__Connection__TypeAssignment_2_4_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_4_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5732:1: rule__Connection__Group_2_4_1_1__0 : rule__Connection__Group_2_4_1_1__0__Impl rule__Connection__Group_2_4_1_1__1 ;
    public final void rule__Connection__Group_2_4_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5736:1: ( rule__Connection__Group_2_4_1_1__0__Impl rule__Connection__Group_2_4_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5737:2: rule__Connection__Group_2_4_1_1__0__Impl rule__Connection__Group_2_4_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__0__Impl_in_rule__Connection__Group_2_4_1_1__011286);
            rule__Connection__Group_2_4_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__1_in_rule__Connection__Group_2_4_1_1__011289);
            rule__Connection__Group_2_4_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5744:1: rule__Connection__Group_2_4_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_4_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5748:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5749:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5749:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5750:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_4_1_1__0__Impl11317); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5763:1: rule__Connection__Group_2_4_1_1__1 : rule__Connection__Group_2_4_1_1__1__Impl rule__Connection__Group_2_4_1_1__2 ;
    public final void rule__Connection__Group_2_4_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5767:1: ( rule__Connection__Group_2_4_1_1__1__Impl rule__Connection__Group_2_4_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5768:2: rule__Connection__Group_2_4_1_1__1__Impl rule__Connection__Group_2_4_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__1__Impl_in_rule__Connection__Group_2_4_1_1__111348);
            rule__Connection__Group_2_4_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__2_in_rule__Connection__Group_2_4_1_1__111351);
            rule__Connection__Group_2_4_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5775:1: rule__Connection__Group_2_4_1_1__1__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_4_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5779:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5780:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5780:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5781:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_4_1_1_1()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_4_1_1__1__Impl11379); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_4_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5794:1: rule__Connection__Group_2_4_1_1__2 : rule__Connection__Group_2_4_1_1__2__Impl rule__Connection__Group_2_4_1_1__3 ;
    public final void rule__Connection__Group_2_4_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5798:1: ( rule__Connection__Group_2_4_1_1__2__Impl rule__Connection__Group_2_4_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5799:2: rule__Connection__Group_2_4_1_1__2__Impl rule__Connection__Group_2_4_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__2__Impl_in_rule__Connection__Group_2_4_1_1__211410);
            rule__Connection__Group_2_4_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__3_in_rule__Connection__Group_2_4_1_1__211413);
            rule__Connection__Group_2_4_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5806:1: rule__Connection__Group_2_4_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5810:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5811:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5811:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5812:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_1_1__2__Impl11441); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5825:1: rule__Connection__Group_2_4_1_1__3 : rule__Connection__Group_2_4_1_1__3__Impl ;
    public final void rule__Connection__Group_2_4_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5829:1: ( rule__Connection__Group_2_4_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5830:2: rule__Connection__Group_2_4_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__3__Impl_in_rule__Connection__Group_2_4_1_1__311472);
            rule__Connection__Group_2_4_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_4_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5836:1: rule__Connection__Group_2_4_1_1__3__Impl : ( ( rule__Connection__DbnameAssignment_2_4_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_4_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5840:1: ( ( ( rule__Connection__DbnameAssignment_2_4_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5841:1: ( ( rule__Connection__DbnameAssignment_2_4_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5841:1: ( ( rule__Connection__DbnameAssignment_2_4_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5842:1: ( rule__Connection__DbnameAssignment_2_4_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_4_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5843:1: ( rule__Connection__DbnameAssignment_2_4_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5843:2: rule__Connection__DbnameAssignment_2_4_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_4_1_1_3_in_rule__Connection__Group_2_4_1_1__3__Impl11499);
            rule__Connection__DbnameAssignment_2_4_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_4_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5861:1: rule__Connection__Group_2_4_1_2__0 : rule__Connection__Group_2_4_1_2__0__Impl rule__Connection__Group_2_4_1_2__1 ;
    public final void rule__Connection__Group_2_4_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5865:1: ( rule__Connection__Group_2_4_1_2__0__Impl rule__Connection__Group_2_4_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5866:2: rule__Connection__Group_2_4_1_2__0__Impl rule__Connection__Group_2_4_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__0__Impl_in_rule__Connection__Group_2_4_1_2__011537);
            rule__Connection__Group_2_4_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__1_in_rule__Connection__Group_2_4_1_2__011540);
            rule__Connection__Group_2_4_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5873:1: rule__Connection__Group_2_4_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_4_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5877:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5878:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5878:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5879:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_4_1_2__0__Impl11568); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5892:1: rule__Connection__Group_2_4_1_2__1 : rule__Connection__Group_2_4_1_2__1__Impl rule__Connection__Group_2_4_1_2__2 ;
    public final void rule__Connection__Group_2_4_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5896:1: ( rule__Connection__Group_2_4_1_2__1__Impl rule__Connection__Group_2_4_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5897:2: rule__Connection__Group_2_4_1_2__1__Impl rule__Connection__Group_2_4_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__1__Impl_in_rule__Connection__Group_2_4_1_2__111599);
            rule__Connection__Group_2_4_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__2_in_rule__Connection__Group_2_4_1_2__111602);
            rule__Connection__Group_2_4_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5904:1: rule__Connection__Group_2_4_1_2__1__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_4_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5908:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5909:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5909:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5910:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_4_1_2_1()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_4_1_2__1__Impl11630); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_4_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5923:1: rule__Connection__Group_2_4_1_2__2 : rule__Connection__Group_2_4_1_2__2__Impl rule__Connection__Group_2_4_1_2__3 ;
    public final void rule__Connection__Group_2_4_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5927:1: ( rule__Connection__Group_2_4_1_2__2__Impl rule__Connection__Group_2_4_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5928:2: rule__Connection__Group_2_4_1_2__2__Impl rule__Connection__Group_2_4_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__2__Impl_in_rule__Connection__Group_2_4_1_2__211661);
            rule__Connection__Group_2_4_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__3_in_rule__Connection__Group_2_4_1_2__211664);
            rule__Connection__Group_2_4_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5935:1: rule__Connection__Group_2_4_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5939:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5940:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5940:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5941:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_1_2__2__Impl11692); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5954:1: rule__Connection__Group_2_4_1_2__3 : rule__Connection__Group_2_4_1_2__3__Impl ;
    public final void rule__Connection__Group_2_4_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5958:1: ( rule__Connection__Group_2_4_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5959:2: rule__Connection__Group_2_4_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__3__Impl_in_rule__Connection__Group_2_4_1_2__311723);
            rule__Connection__Group_2_4_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_4_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5965:1: rule__Connection__Group_2_4_1_2__3__Impl : ( ( rule__Connection__UserAssignment_2_4_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_4_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5969:1: ( ( ( rule__Connection__UserAssignment_2_4_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5970:1: ( ( rule__Connection__UserAssignment_2_4_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5970:1: ( ( rule__Connection__UserAssignment_2_4_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5971:1: ( rule__Connection__UserAssignment_2_4_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_4_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5972:1: ( rule__Connection__UserAssignment_2_4_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5972:2: rule__Connection__UserAssignment_2_4_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_4_1_2_3_in_rule__Connection__Group_2_4_1_2__3__Impl11750);
            rule__Connection__UserAssignment_2_4_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_4_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5990:1: rule__Connection__Group_2_4_1_3__0 : rule__Connection__Group_2_4_1_3__0__Impl rule__Connection__Group_2_4_1_3__1 ;
    public final void rule__Connection__Group_2_4_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5994:1: ( rule__Connection__Group_2_4_1_3__0__Impl rule__Connection__Group_2_4_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:5995:2: rule__Connection__Group_2_4_1_3__0__Impl rule__Connection__Group_2_4_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__0__Impl_in_rule__Connection__Group_2_4_1_3__011788);
            rule__Connection__Group_2_4_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__1_in_rule__Connection__Group_2_4_1_3__011791);
            rule__Connection__Group_2_4_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6002:1: rule__Connection__Group_2_4_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_4_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6006:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6007:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6007:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6008:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_4_1_3__0__Impl11819); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6021:1: rule__Connection__Group_2_4_1_3__1 : rule__Connection__Group_2_4_1_3__1__Impl rule__Connection__Group_2_4_1_3__2 ;
    public final void rule__Connection__Group_2_4_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6025:1: ( rule__Connection__Group_2_4_1_3__1__Impl rule__Connection__Group_2_4_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6026:2: rule__Connection__Group_2_4_1_3__1__Impl rule__Connection__Group_2_4_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__1__Impl_in_rule__Connection__Group_2_4_1_3__111850);
            rule__Connection__Group_2_4_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__2_in_rule__Connection__Group_2_4_1_3__111853);
            rule__Connection__Group_2_4_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6033:1: rule__Connection__Group_2_4_1_3__1__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_4_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6037:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6038:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6038:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6039:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_4_1_3_1()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_4_1_3__1__Impl11881); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_4_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6052:1: rule__Connection__Group_2_4_1_3__2 : rule__Connection__Group_2_4_1_3__2__Impl rule__Connection__Group_2_4_1_3__3 ;
    public final void rule__Connection__Group_2_4_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6056:1: ( rule__Connection__Group_2_4_1_3__2__Impl rule__Connection__Group_2_4_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6057:2: rule__Connection__Group_2_4_1_3__2__Impl rule__Connection__Group_2_4_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__2__Impl_in_rule__Connection__Group_2_4_1_3__211912);
            rule__Connection__Group_2_4_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__3_in_rule__Connection__Group_2_4_1_3__211915);
            rule__Connection__Group_2_4_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6064:1: rule__Connection__Group_2_4_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6068:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6069:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6069:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6070:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_1_3__2__Impl11943); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6083:1: rule__Connection__Group_2_4_1_3__3 : rule__Connection__Group_2_4_1_3__3__Impl ;
    public final void rule__Connection__Group_2_4_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6087:1: ( rule__Connection__Group_2_4_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6088:2: rule__Connection__Group_2_4_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__3__Impl_in_rule__Connection__Group_2_4_1_3__311974);
            rule__Connection__Group_2_4_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_4_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6094:1: rule__Connection__Group_2_4_1_3__3__Impl : ( ( rule__Connection__PasswordAssignment_2_4_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_4_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6098:1: ( ( ( rule__Connection__PasswordAssignment_2_4_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6099:1: ( ( rule__Connection__PasswordAssignment_2_4_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6099:1: ( ( rule__Connection__PasswordAssignment_2_4_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6100:1: ( rule__Connection__PasswordAssignment_2_4_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_4_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6101:1: ( rule__Connection__PasswordAssignment_2_4_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6101:2: rule__Connection__PasswordAssignment_2_4_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_4_1_3_3_in_rule__Connection__Group_2_4_1_3__3__Impl12001);
            rule__Connection__PasswordAssignment_2_4_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_4_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6119:1: rule__Connection__Group_2_4_1_4__0 : rule__Connection__Group_2_4_1_4__0__Impl rule__Connection__Group_2_4_1_4__1 ;
    public final void rule__Connection__Group_2_4_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6123:1: ( rule__Connection__Group_2_4_1_4__0__Impl rule__Connection__Group_2_4_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6124:2: rule__Connection__Group_2_4_1_4__0__Impl rule__Connection__Group_2_4_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__0__Impl_in_rule__Connection__Group_2_4_1_4__012039);
            rule__Connection__Group_2_4_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__1_in_rule__Connection__Group_2_4_1_4__012042);
            rule__Connection__Group_2_4_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6131:1: rule__Connection__Group_2_4_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_4_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6135:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6136:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6136:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6137:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_4_1_4__0__Impl12070); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6150:1: rule__Connection__Group_2_4_1_4__1 : rule__Connection__Group_2_4_1_4__1__Impl rule__Connection__Group_2_4_1_4__2 ;
    public final void rule__Connection__Group_2_4_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6154:1: ( rule__Connection__Group_2_4_1_4__1__Impl rule__Connection__Group_2_4_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6155:2: rule__Connection__Group_2_4_1_4__1__Impl rule__Connection__Group_2_4_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__1__Impl_in_rule__Connection__Group_2_4_1_4__112101);
            rule__Connection__Group_2_4_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__2_in_rule__Connection__Group_2_4_1_4__112104);
            rule__Connection__Group_2_4_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6162:1: rule__Connection__Group_2_4_1_4__1__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_4_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6166:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6167:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6167:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6168:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_4_1_4_1()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_4_1_4__1__Impl12132); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_4_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6181:1: rule__Connection__Group_2_4_1_4__2 : rule__Connection__Group_2_4_1_4__2__Impl rule__Connection__Group_2_4_1_4__3 ;
    public final void rule__Connection__Group_2_4_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6185:1: ( rule__Connection__Group_2_4_1_4__2__Impl rule__Connection__Group_2_4_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6186:2: rule__Connection__Group_2_4_1_4__2__Impl rule__Connection__Group_2_4_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__2__Impl_in_rule__Connection__Group_2_4_1_4__212163);
            rule__Connection__Group_2_4_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__3_in_rule__Connection__Group_2_4_1_4__212166);
            rule__Connection__Group_2_4_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6193:1: rule__Connection__Group_2_4_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6197:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6198:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6198:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6199:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_1_4__2__Impl12194); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6212:1: rule__Connection__Group_2_4_1_4__3 : rule__Connection__Group_2_4_1_4__3__Impl ;
    public final void rule__Connection__Group_2_4_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6216:1: ( rule__Connection__Group_2_4_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6217:2: rule__Connection__Group_2_4_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__3__Impl_in_rule__Connection__Group_2_4_1_4__312225);
            rule__Connection__Group_2_4_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_4_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6223:1: rule__Connection__Group_2_4_1_4__3__Impl : ( ( rule__Connection__PortAssignment_2_4_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_4_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6227:1: ( ( ( rule__Connection__PortAssignment_2_4_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6228:1: ( ( rule__Connection__PortAssignment_2_4_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6228:1: ( ( rule__Connection__PortAssignment_2_4_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6229:1: ( rule__Connection__PortAssignment_2_4_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_4_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6230:1: ( rule__Connection__PortAssignment_2_4_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6230:2: rule__Connection__PortAssignment_2_4_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_4_1_4_3_in_rule__Connection__Group_2_4_1_4__3__Impl12252);
            rule__Connection__PortAssignment_2_4_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_4_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6248:1: rule__Connection__Group_2_4_1_5__0 : rule__Connection__Group_2_4_1_5__0__Impl rule__Connection__Group_2_4_1_5__1 ;
    public final void rule__Connection__Group_2_4_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6252:1: ( rule__Connection__Group_2_4_1_5__0__Impl rule__Connection__Group_2_4_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6253:2: rule__Connection__Group_2_4_1_5__0__Impl rule__Connection__Group_2_4_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__0__Impl_in_rule__Connection__Group_2_4_1_5__012290);
            rule__Connection__Group_2_4_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__1_in_rule__Connection__Group_2_4_1_5__012293);
            rule__Connection__Group_2_4_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6260:1: rule__Connection__Group_2_4_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_4_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6264:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6265:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6265:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6266:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_4_1_5__0__Impl12321); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_4_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6279:1: rule__Connection__Group_2_4_1_5__1 : rule__Connection__Group_2_4_1_5__1__Impl rule__Connection__Group_2_4_1_5__2 ;
    public final void rule__Connection__Group_2_4_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6283:1: ( rule__Connection__Group_2_4_1_5__1__Impl rule__Connection__Group_2_4_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6284:2: rule__Connection__Group_2_4_1_5__1__Impl rule__Connection__Group_2_4_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__1__Impl_in_rule__Connection__Group_2_4_1_5__112352);
            rule__Connection__Group_2_4_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__2_in_rule__Connection__Group_2_4_1_5__112355);
            rule__Connection__Group_2_4_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6291:1: rule__Connection__Group_2_4_1_5__1__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_4_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6295:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6296:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6296:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6297:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_4_1_5_1()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_4_1_5__1__Impl12383); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_4_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6310:1: rule__Connection__Group_2_4_1_5__2 : rule__Connection__Group_2_4_1_5__2__Impl rule__Connection__Group_2_4_1_5__3 ;
    public final void rule__Connection__Group_2_4_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6314:1: ( rule__Connection__Group_2_4_1_5__2__Impl rule__Connection__Group_2_4_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6315:2: rule__Connection__Group_2_4_1_5__2__Impl rule__Connection__Group_2_4_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__2__Impl_in_rule__Connection__Group_2_4_1_5__212414);
            rule__Connection__Group_2_4_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__3_in_rule__Connection__Group_2_4_1_5__212417);
            rule__Connection__Group_2_4_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6322:1: rule__Connection__Group_2_4_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_4_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6326:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6327:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6327:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6328:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_4_1_5__2__Impl12445); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_4_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6341:1: rule__Connection__Group_2_4_1_5__3 : rule__Connection__Group_2_4_1_5__3__Impl ;
    public final void rule__Connection__Group_2_4_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6345:1: ( rule__Connection__Group_2_4_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6346:2: rule__Connection__Group_2_4_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__3__Impl_in_rule__Connection__Group_2_4_1_5__312476);
            rule__Connection__Group_2_4_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_4_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6352:1: rule__Connection__Group_2_4_1_5__3__Impl : ( ( rule__Connection__PoolsizeAssignment_2_4_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_4_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6356:1: ( ( ( rule__Connection__PoolsizeAssignment_2_4_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6357:1: ( ( rule__Connection__PoolsizeAssignment_2_4_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6357:1: ( ( rule__Connection__PoolsizeAssignment_2_4_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6358:1: ( rule__Connection__PoolsizeAssignment_2_4_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_4_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6359:1: ( rule__Connection__PoolsizeAssignment_2_4_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6359:2: rule__Connection__PoolsizeAssignment_2_4_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_4_1_5_3_in_rule__Connection__Group_2_4_1_5__3__Impl12503);
            rule__Connection__PoolsizeAssignment_2_4_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_4_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_4_1_5__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6377:1: rule__Connection__Group_2_5__0 : rule__Connection__Group_2_5__0__Impl rule__Connection__Group_2_5__1 ;
    public final void rule__Connection__Group_2_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6381:1: ( rule__Connection__Group_2_5__0__Impl rule__Connection__Group_2_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6382:2: rule__Connection__Group_2_5__0__Impl rule__Connection__Group_2_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5__0__Impl_in_rule__Connection__Group_2_5__012541);
            rule__Connection__Group_2_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5__1_in_rule__Connection__Group_2_5__012544);
            rule__Connection__Group_2_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5__0"


    // $ANTLR start "rule__Connection__Group_2_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6389:1: rule__Connection__Group_2_5__0__Impl : ( ( rule__Connection__Group_2_5_0__0 ) ) ;
    public final void rule__Connection__Group_2_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6393:1: ( ( ( rule__Connection__Group_2_5_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6394:1: ( ( rule__Connection__Group_2_5_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6394:1: ( ( rule__Connection__Group_2_5_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6395:1: ( rule__Connection__Group_2_5_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_5_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6396:1: ( rule__Connection__Group_2_5_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6396:2: rule__Connection__Group_2_5_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_0__0_in_rule__Connection__Group_2_5__0__Impl12571);
            rule__Connection__Group_2_5_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6406:1: rule__Connection__Group_2_5__1 : rule__Connection__Group_2_5__1__Impl ;
    public final void rule__Connection__Group_2_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6410:1: ( rule__Connection__Group_2_5__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6411:2: rule__Connection__Group_2_5__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5__1__Impl_in_rule__Connection__Group_2_5__112601);
            rule__Connection__Group_2_5__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5__1"


    // $ANTLR start "rule__Connection__Group_2_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6417:1: rule__Connection__Group_2_5__1__Impl : ( ( rule__Connection__UnorderedGroup_2_5_1 ) ) ;
    public final void rule__Connection__Group_2_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6421:1: ( ( ( rule__Connection__UnorderedGroup_2_5_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6422:1: ( ( rule__Connection__UnorderedGroup_2_5_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6422:1: ( ( rule__Connection__UnorderedGroup_2_5_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6423:1: ( rule__Connection__UnorderedGroup_2_5_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6424:1: ( rule__Connection__UnorderedGroup_2_5_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6424:2: rule__Connection__UnorderedGroup_2_5_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1_in_rule__Connection__Group_2_5__1__Impl12628);
            rule__Connection__UnorderedGroup_2_5_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6438:1: rule__Connection__Group_2_5_0__0 : rule__Connection__Group_2_5_0__0__Impl rule__Connection__Group_2_5_0__1 ;
    public final void rule__Connection__Group_2_5_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6442:1: ( rule__Connection__Group_2_5_0__0__Impl rule__Connection__Group_2_5_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6443:2: rule__Connection__Group_2_5_0__0__Impl rule__Connection__Group_2_5_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_0__0__Impl_in_rule__Connection__Group_2_5_0__012662);
            rule__Connection__Group_2_5_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_0__1_in_rule__Connection__Group_2_5_0__012665);
            rule__Connection__Group_2_5_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_0__0"


    // $ANTLR start "rule__Connection__Group_2_5_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6450:1: rule__Connection__Group_2_5_0__0__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_5_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6454:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6455:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6455:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6456:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_5_0_0()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_5_0__0__Impl12693); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_5_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6469:1: rule__Connection__Group_2_5_0__1 : rule__Connection__Group_2_5_0__1__Impl rule__Connection__Group_2_5_0__2 ;
    public final void rule__Connection__Group_2_5_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6473:1: ( rule__Connection__Group_2_5_0__1__Impl rule__Connection__Group_2_5_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6474:2: rule__Connection__Group_2_5_0__1__Impl rule__Connection__Group_2_5_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_0__1__Impl_in_rule__Connection__Group_2_5_0__112724);
            rule__Connection__Group_2_5_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_0__2_in_rule__Connection__Group_2_5_0__112727);
            rule__Connection__Group_2_5_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_0__1"


    // $ANTLR start "rule__Connection__Group_2_5_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6481:1: rule__Connection__Group_2_5_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6485:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6486:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6486:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6487:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_0__1__Impl12755); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6500:1: rule__Connection__Group_2_5_0__2 : rule__Connection__Group_2_5_0__2__Impl ;
    public final void rule__Connection__Group_2_5_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6504:1: ( rule__Connection__Group_2_5_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6505:2: rule__Connection__Group_2_5_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_0__2__Impl_in_rule__Connection__Group_2_5_0__212786);
            rule__Connection__Group_2_5_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_0__2"


    // $ANTLR start "rule__Connection__Group_2_5_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6511:1: rule__Connection__Group_2_5_0__2__Impl : ( ( rule__Connection__PortAssignment_2_5_0_2 ) ) ;
    public final void rule__Connection__Group_2_5_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6515:1: ( ( ( rule__Connection__PortAssignment_2_5_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6516:1: ( ( rule__Connection__PortAssignment_2_5_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6516:1: ( ( rule__Connection__PortAssignment_2_5_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6517:1: ( rule__Connection__PortAssignment_2_5_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_5_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6518:1: ( rule__Connection__PortAssignment_2_5_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6518:2: rule__Connection__PortAssignment_2_5_0_2
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_5_0_2_in_rule__Connection__Group_2_5_0__2__Impl12813);
            rule__Connection__PortAssignment_2_5_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_5_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6534:1: rule__Connection__Group_2_5_1_0__0 : rule__Connection__Group_2_5_1_0__0__Impl rule__Connection__Group_2_5_1_0__1 ;
    public final void rule__Connection__Group_2_5_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6538:1: ( rule__Connection__Group_2_5_1_0__0__Impl rule__Connection__Group_2_5_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6539:2: rule__Connection__Group_2_5_1_0__0__Impl rule__Connection__Group_2_5_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__0__Impl_in_rule__Connection__Group_2_5_1_0__012849);
            rule__Connection__Group_2_5_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__1_in_rule__Connection__Group_2_5_1_0__012852);
            rule__Connection__Group_2_5_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6546:1: rule__Connection__Group_2_5_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_5_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6550:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6551:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6551:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6552:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_5_1_0__0__Impl12880); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6565:1: rule__Connection__Group_2_5_1_0__1 : rule__Connection__Group_2_5_1_0__1__Impl rule__Connection__Group_2_5_1_0__2 ;
    public final void rule__Connection__Group_2_5_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6569:1: ( rule__Connection__Group_2_5_1_0__1__Impl rule__Connection__Group_2_5_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6570:2: rule__Connection__Group_2_5_1_0__1__Impl rule__Connection__Group_2_5_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__1__Impl_in_rule__Connection__Group_2_5_1_0__112911);
            rule__Connection__Group_2_5_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__2_in_rule__Connection__Group_2_5_1_0__112914);
            rule__Connection__Group_2_5_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6577:1: rule__Connection__Group_2_5_1_0__1__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_5_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6581:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6582:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6582:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6583:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_5_1_0_1()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_5_1_0__1__Impl12942); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_5_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6596:1: rule__Connection__Group_2_5_1_0__2 : rule__Connection__Group_2_5_1_0__2__Impl rule__Connection__Group_2_5_1_0__3 ;
    public final void rule__Connection__Group_2_5_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6600:1: ( rule__Connection__Group_2_5_1_0__2__Impl rule__Connection__Group_2_5_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6601:2: rule__Connection__Group_2_5_1_0__2__Impl rule__Connection__Group_2_5_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__2__Impl_in_rule__Connection__Group_2_5_1_0__212973);
            rule__Connection__Group_2_5_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__3_in_rule__Connection__Group_2_5_1_0__212976);
            rule__Connection__Group_2_5_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6608:1: rule__Connection__Group_2_5_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6612:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6613:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6613:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6614:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_1_0__2__Impl13004); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6627:1: rule__Connection__Group_2_5_1_0__3 : rule__Connection__Group_2_5_1_0__3__Impl ;
    public final void rule__Connection__Group_2_5_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6631:1: ( rule__Connection__Group_2_5_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6632:2: rule__Connection__Group_2_5_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__3__Impl_in_rule__Connection__Group_2_5_1_0__313035);
            rule__Connection__Group_2_5_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_5_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6638:1: rule__Connection__Group_2_5_1_0__3__Impl : ( ( rule__Connection__TypeAssignment_2_5_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_5_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6642:1: ( ( ( rule__Connection__TypeAssignment_2_5_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6643:1: ( ( rule__Connection__TypeAssignment_2_5_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6643:1: ( ( rule__Connection__TypeAssignment_2_5_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6644:1: ( rule__Connection__TypeAssignment_2_5_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_5_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6645:1: ( rule__Connection__TypeAssignment_2_5_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6645:2: rule__Connection__TypeAssignment_2_5_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_5_1_0_3_in_rule__Connection__Group_2_5_1_0__3__Impl13062);
            rule__Connection__TypeAssignment_2_5_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_5_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6663:1: rule__Connection__Group_2_5_1_1__0 : rule__Connection__Group_2_5_1_1__0__Impl rule__Connection__Group_2_5_1_1__1 ;
    public final void rule__Connection__Group_2_5_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6667:1: ( rule__Connection__Group_2_5_1_1__0__Impl rule__Connection__Group_2_5_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6668:2: rule__Connection__Group_2_5_1_1__0__Impl rule__Connection__Group_2_5_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__0__Impl_in_rule__Connection__Group_2_5_1_1__013100);
            rule__Connection__Group_2_5_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__1_in_rule__Connection__Group_2_5_1_1__013103);
            rule__Connection__Group_2_5_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6675:1: rule__Connection__Group_2_5_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_5_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6679:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6680:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6680:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6681:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_5_1_1__0__Impl13131); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6694:1: rule__Connection__Group_2_5_1_1__1 : rule__Connection__Group_2_5_1_1__1__Impl rule__Connection__Group_2_5_1_1__2 ;
    public final void rule__Connection__Group_2_5_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6698:1: ( rule__Connection__Group_2_5_1_1__1__Impl rule__Connection__Group_2_5_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6699:2: rule__Connection__Group_2_5_1_1__1__Impl rule__Connection__Group_2_5_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__1__Impl_in_rule__Connection__Group_2_5_1_1__113162);
            rule__Connection__Group_2_5_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__2_in_rule__Connection__Group_2_5_1_1__113165);
            rule__Connection__Group_2_5_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6706:1: rule__Connection__Group_2_5_1_1__1__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_5_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6710:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6711:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6711:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6712:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_5_1_1_1()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_5_1_1__1__Impl13193); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_5_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6725:1: rule__Connection__Group_2_5_1_1__2 : rule__Connection__Group_2_5_1_1__2__Impl rule__Connection__Group_2_5_1_1__3 ;
    public final void rule__Connection__Group_2_5_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6729:1: ( rule__Connection__Group_2_5_1_1__2__Impl rule__Connection__Group_2_5_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6730:2: rule__Connection__Group_2_5_1_1__2__Impl rule__Connection__Group_2_5_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__2__Impl_in_rule__Connection__Group_2_5_1_1__213224);
            rule__Connection__Group_2_5_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__3_in_rule__Connection__Group_2_5_1_1__213227);
            rule__Connection__Group_2_5_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6737:1: rule__Connection__Group_2_5_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6741:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6742:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6742:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6743:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_1_1__2__Impl13255); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6756:1: rule__Connection__Group_2_5_1_1__3 : rule__Connection__Group_2_5_1_1__3__Impl ;
    public final void rule__Connection__Group_2_5_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6760:1: ( rule__Connection__Group_2_5_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6761:2: rule__Connection__Group_2_5_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__3__Impl_in_rule__Connection__Group_2_5_1_1__313286);
            rule__Connection__Group_2_5_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_5_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6767:1: rule__Connection__Group_2_5_1_1__3__Impl : ( ( rule__Connection__DbnameAssignment_2_5_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_5_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6771:1: ( ( ( rule__Connection__DbnameAssignment_2_5_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6772:1: ( ( rule__Connection__DbnameAssignment_2_5_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6772:1: ( ( rule__Connection__DbnameAssignment_2_5_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6773:1: ( rule__Connection__DbnameAssignment_2_5_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_5_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6774:1: ( rule__Connection__DbnameAssignment_2_5_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6774:2: rule__Connection__DbnameAssignment_2_5_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_5_1_1_3_in_rule__Connection__Group_2_5_1_1__3__Impl13313);
            rule__Connection__DbnameAssignment_2_5_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_5_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6792:1: rule__Connection__Group_2_5_1_2__0 : rule__Connection__Group_2_5_1_2__0__Impl rule__Connection__Group_2_5_1_2__1 ;
    public final void rule__Connection__Group_2_5_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6796:1: ( rule__Connection__Group_2_5_1_2__0__Impl rule__Connection__Group_2_5_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6797:2: rule__Connection__Group_2_5_1_2__0__Impl rule__Connection__Group_2_5_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__0__Impl_in_rule__Connection__Group_2_5_1_2__013351);
            rule__Connection__Group_2_5_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__1_in_rule__Connection__Group_2_5_1_2__013354);
            rule__Connection__Group_2_5_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6804:1: rule__Connection__Group_2_5_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_5_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6808:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6809:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6809:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6810:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_5_1_2__0__Impl13382); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6823:1: rule__Connection__Group_2_5_1_2__1 : rule__Connection__Group_2_5_1_2__1__Impl rule__Connection__Group_2_5_1_2__2 ;
    public final void rule__Connection__Group_2_5_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6827:1: ( rule__Connection__Group_2_5_1_2__1__Impl rule__Connection__Group_2_5_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6828:2: rule__Connection__Group_2_5_1_2__1__Impl rule__Connection__Group_2_5_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__1__Impl_in_rule__Connection__Group_2_5_1_2__113413);
            rule__Connection__Group_2_5_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__2_in_rule__Connection__Group_2_5_1_2__113416);
            rule__Connection__Group_2_5_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6835:1: rule__Connection__Group_2_5_1_2__1__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_5_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6839:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6840:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6840:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6841:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_5_1_2_1()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_5_1_2__1__Impl13444); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_5_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6854:1: rule__Connection__Group_2_5_1_2__2 : rule__Connection__Group_2_5_1_2__2__Impl rule__Connection__Group_2_5_1_2__3 ;
    public final void rule__Connection__Group_2_5_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6858:1: ( rule__Connection__Group_2_5_1_2__2__Impl rule__Connection__Group_2_5_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6859:2: rule__Connection__Group_2_5_1_2__2__Impl rule__Connection__Group_2_5_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__2__Impl_in_rule__Connection__Group_2_5_1_2__213475);
            rule__Connection__Group_2_5_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__3_in_rule__Connection__Group_2_5_1_2__213478);
            rule__Connection__Group_2_5_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6866:1: rule__Connection__Group_2_5_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6870:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6871:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6871:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6872:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_1_2__2__Impl13506); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6885:1: rule__Connection__Group_2_5_1_2__3 : rule__Connection__Group_2_5_1_2__3__Impl ;
    public final void rule__Connection__Group_2_5_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6889:1: ( rule__Connection__Group_2_5_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6890:2: rule__Connection__Group_2_5_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__3__Impl_in_rule__Connection__Group_2_5_1_2__313537);
            rule__Connection__Group_2_5_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_5_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6896:1: rule__Connection__Group_2_5_1_2__3__Impl : ( ( rule__Connection__UserAssignment_2_5_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_5_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6900:1: ( ( ( rule__Connection__UserAssignment_2_5_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6901:1: ( ( rule__Connection__UserAssignment_2_5_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6901:1: ( ( rule__Connection__UserAssignment_2_5_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6902:1: ( rule__Connection__UserAssignment_2_5_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_5_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6903:1: ( rule__Connection__UserAssignment_2_5_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6903:2: rule__Connection__UserAssignment_2_5_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_5_1_2_3_in_rule__Connection__Group_2_5_1_2__3__Impl13564);
            rule__Connection__UserAssignment_2_5_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_5_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6921:1: rule__Connection__Group_2_5_1_3__0 : rule__Connection__Group_2_5_1_3__0__Impl rule__Connection__Group_2_5_1_3__1 ;
    public final void rule__Connection__Group_2_5_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6925:1: ( rule__Connection__Group_2_5_1_3__0__Impl rule__Connection__Group_2_5_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6926:2: rule__Connection__Group_2_5_1_3__0__Impl rule__Connection__Group_2_5_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__0__Impl_in_rule__Connection__Group_2_5_1_3__013602);
            rule__Connection__Group_2_5_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__1_in_rule__Connection__Group_2_5_1_3__013605);
            rule__Connection__Group_2_5_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6933:1: rule__Connection__Group_2_5_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_5_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6937:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6938:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6938:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6939:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_5_1_3__0__Impl13633); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6952:1: rule__Connection__Group_2_5_1_3__1 : rule__Connection__Group_2_5_1_3__1__Impl rule__Connection__Group_2_5_1_3__2 ;
    public final void rule__Connection__Group_2_5_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6956:1: ( rule__Connection__Group_2_5_1_3__1__Impl rule__Connection__Group_2_5_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6957:2: rule__Connection__Group_2_5_1_3__1__Impl rule__Connection__Group_2_5_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__1__Impl_in_rule__Connection__Group_2_5_1_3__113664);
            rule__Connection__Group_2_5_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__2_in_rule__Connection__Group_2_5_1_3__113667);
            rule__Connection__Group_2_5_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6964:1: rule__Connection__Group_2_5_1_3__1__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_5_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6968:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6969:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6969:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6970:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_5_1_3_1()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_5_1_3__1__Impl13695); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_5_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6983:1: rule__Connection__Group_2_5_1_3__2 : rule__Connection__Group_2_5_1_3__2__Impl rule__Connection__Group_2_5_1_3__3 ;
    public final void rule__Connection__Group_2_5_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6987:1: ( rule__Connection__Group_2_5_1_3__2__Impl rule__Connection__Group_2_5_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6988:2: rule__Connection__Group_2_5_1_3__2__Impl rule__Connection__Group_2_5_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__2__Impl_in_rule__Connection__Group_2_5_1_3__213726);
            rule__Connection__Group_2_5_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__3_in_rule__Connection__Group_2_5_1_3__213729);
            rule__Connection__Group_2_5_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6995:1: rule__Connection__Group_2_5_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:6999:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7000:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7000:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7001:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_1_3__2__Impl13757); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7014:1: rule__Connection__Group_2_5_1_3__3 : rule__Connection__Group_2_5_1_3__3__Impl ;
    public final void rule__Connection__Group_2_5_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7018:1: ( rule__Connection__Group_2_5_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7019:2: rule__Connection__Group_2_5_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__3__Impl_in_rule__Connection__Group_2_5_1_3__313788);
            rule__Connection__Group_2_5_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_5_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7025:1: rule__Connection__Group_2_5_1_3__3__Impl : ( ( rule__Connection__PasswordAssignment_2_5_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_5_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7029:1: ( ( ( rule__Connection__PasswordAssignment_2_5_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7030:1: ( ( rule__Connection__PasswordAssignment_2_5_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7030:1: ( ( rule__Connection__PasswordAssignment_2_5_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7031:1: ( rule__Connection__PasswordAssignment_2_5_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_5_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7032:1: ( rule__Connection__PasswordAssignment_2_5_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7032:2: rule__Connection__PasswordAssignment_2_5_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_5_1_3_3_in_rule__Connection__Group_2_5_1_3__3__Impl13815);
            rule__Connection__PasswordAssignment_2_5_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_5_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7050:1: rule__Connection__Group_2_5_1_4__0 : rule__Connection__Group_2_5_1_4__0__Impl rule__Connection__Group_2_5_1_4__1 ;
    public final void rule__Connection__Group_2_5_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7054:1: ( rule__Connection__Group_2_5_1_4__0__Impl rule__Connection__Group_2_5_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7055:2: rule__Connection__Group_2_5_1_4__0__Impl rule__Connection__Group_2_5_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__0__Impl_in_rule__Connection__Group_2_5_1_4__013853);
            rule__Connection__Group_2_5_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__1_in_rule__Connection__Group_2_5_1_4__013856);
            rule__Connection__Group_2_5_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7062:1: rule__Connection__Group_2_5_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_5_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7066:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7067:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7067:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7068:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_5_1_4__0__Impl13884); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7081:1: rule__Connection__Group_2_5_1_4__1 : rule__Connection__Group_2_5_1_4__1__Impl rule__Connection__Group_2_5_1_4__2 ;
    public final void rule__Connection__Group_2_5_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7085:1: ( rule__Connection__Group_2_5_1_4__1__Impl rule__Connection__Group_2_5_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7086:2: rule__Connection__Group_2_5_1_4__1__Impl rule__Connection__Group_2_5_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__1__Impl_in_rule__Connection__Group_2_5_1_4__113915);
            rule__Connection__Group_2_5_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__2_in_rule__Connection__Group_2_5_1_4__113918);
            rule__Connection__Group_2_5_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7093:1: rule__Connection__Group_2_5_1_4__1__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_5_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7097:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7098:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7098:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7099:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_5_1_4_1()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_5_1_4__1__Impl13946); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_5_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7112:1: rule__Connection__Group_2_5_1_4__2 : rule__Connection__Group_2_5_1_4__2__Impl rule__Connection__Group_2_5_1_4__3 ;
    public final void rule__Connection__Group_2_5_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7116:1: ( rule__Connection__Group_2_5_1_4__2__Impl rule__Connection__Group_2_5_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7117:2: rule__Connection__Group_2_5_1_4__2__Impl rule__Connection__Group_2_5_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__2__Impl_in_rule__Connection__Group_2_5_1_4__213977);
            rule__Connection__Group_2_5_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__3_in_rule__Connection__Group_2_5_1_4__213980);
            rule__Connection__Group_2_5_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7124:1: rule__Connection__Group_2_5_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7128:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7129:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7129:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7130:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_1_4__2__Impl14008); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7143:1: rule__Connection__Group_2_5_1_4__3 : rule__Connection__Group_2_5_1_4__3__Impl ;
    public final void rule__Connection__Group_2_5_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7147:1: ( rule__Connection__Group_2_5_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7148:2: rule__Connection__Group_2_5_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__3__Impl_in_rule__Connection__Group_2_5_1_4__314039);
            rule__Connection__Group_2_5_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_5_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7154:1: rule__Connection__Group_2_5_1_4__3__Impl : ( ( rule__Connection__UrlAssignment_2_5_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_5_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7158:1: ( ( ( rule__Connection__UrlAssignment_2_5_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7159:1: ( ( rule__Connection__UrlAssignment_2_5_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7159:1: ( ( rule__Connection__UrlAssignment_2_5_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7160:1: ( rule__Connection__UrlAssignment_2_5_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_5_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7161:1: ( rule__Connection__UrlAssignment_2_5_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7161:2: rule__Connection__UrlAssignment_2_5_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_5_1_4_3_in_rule__Connection__Group_2_5_1_4__3__Impl14066);
            rule__Connection__UrlAssignment_2_5_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_5_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7179:1: rule__Connection__Group_2_5_1_5__0 : rule__Connection__Group_2_5_1_5__0__Impl rule__Connection__Group_2_5_1_5__1 ;
    public final void rule__Connection__Group_2_5_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7183:1: ( rule__Connection__Group_2_5_1_5__0__Impl rule__Connection__Group_2_5_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7184:2: rule__Connection__Group_2_5_1_5__0__Impl rule__Connection__Group_2_5_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__0__Impl_in_rule__Connection__Group_2_5_1_5__014104);
            rule__Connection__Group_2_5_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__1_in_rule__Connection__Group_2_5_1_5__014107);
            rule__Connection__Group_2_5_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7191:1: rule__Connection__Group_2_5_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_5_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7195:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7196:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7196:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7197:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_5_1_5__0__Impl14135); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_5_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7210:1: rule__Connection__Group_2_5_1_5__1 : rule__Connection__Group_2_5_1_5__1__Impl rule__Connection__Group_2_5_1_5__2 ;
    public final void rule__Connection__Group_2_5_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7214:1: ( rule__Connection__Group_2_5_1_5__1__Impl rule__Connection__Group_2_5_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7215:2: rule__Connection__Group_2_5_1_5__1__Impl rule__Connection__Group_2_5_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__1__Impl_in_rule__Connection__Group_2_5_1_5__114166);
            rule__Connection__Group_2_5_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__2_in_rule__Connection__Group_2_5_1_5__114169);
            rule__Connection__Group_2_5_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7222:1: rule__Connection__Group_2_5_1_5__1__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_5_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7226:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7227:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7227:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7228:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_5_1_5_1()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_5_1_5__1__Impl14197); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_5_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7241:1: rule__Connection__Group_2_5_1_5__2 : rule__Connection__Group_2_5_1_5__2__Impl rule__Connection__Group_2_5_1_5__3 ;
    public final void rule__Connection__Group_2_5_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7245:1: ( rule__Connection__Group_2_5_1_5__2__Impl rule__Connection__Group_2_5_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7246:2: rule__Connection__Group_2_5_1_5__2__Impl rule__Connection__Group_2_5_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__2__Impl_in_rule__Connection__Group_2_5_1_5__214228);
            rule__Connection__Group_2_5_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__3_in_rule__Connection__Group_2_5_1_5__214231);
            rule__Connection__Group_2_5_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7253:1: rule__Connection__Group_2_5_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_5_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7257:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7258:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7258:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7259:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_5_1_5__2__Impl14259); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_5_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7272:1: rule__Connection__Group_2_5_1_5__3 : rule__Connection__Group_2_5_1_5__3__Impl ;
    public final void rule__Connection__Group_2_5_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7276:1: ( rule__Connection__Group_2_5_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7277:2: rule__Connection__Group_2_5_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__3__Impl_in_rule__Connection__Group_2_5_1_5__314290);
            rule__Connection__Group_2_5_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_5_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7283:1: rule__Connection__Group_2_5_1_5__3__Impl : ( ( rule__Connection__PoolsizeAssignment_2_5_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_5_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7287:1: ( ( ( rule__Connection__PoolsizeAssignment_2_5_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7288:1: ( ( rule__Connection__PoolsizeAssignment_2_5_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7288:1: ( ( rule__Connection__PoolsizeAssignment_2_5_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7289:1: ( rule__Connection__PoolsizeAssignment_2_5_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_5_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7290:1: ( rule__Connection__PoolsizeAssignment_2_5_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7290:2: rule__Connection__PoolsizeAssignment_2_5_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_5_1_5_3_in_rule__Connection__Group_2_5_1_5__3__Impl14317);
            rule__Connection__PoolsizeAssignment_2_5_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_5_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_5_1_5__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_6__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7308:1: rule__Connection__Group_2_6__0 : rule__Connection__Group_2_6__0__Impl rule__Connection__Group_2_6__1 ;
    public final void rule__Connection__Group_2_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7312:1: ( rule__Connection__Group_2_6__0__Impl rule__Connection__Group_2_6__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7313:2: rule__Connection__Group_2_6__0__Impl rule__Connection__Group_2_6__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6__0__Impl_in_rule__Connection__Group_2_6__014355);
            rule__Connection__Group_2_6__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6__1_in_rule__Connection__Group_2_6__014358);
            rule__Connection__Group_2_6__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6__0"


    // $ANTLR start "rule__Connection__Group_2_6__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7320:1: rule__Connection__Group_2_6__0__Impl : ( ( rule__Connection__Group_2_6_0__0 ) ) ;
    public final void rule__Connection__Group_2_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7324:1: ( ( ( rule__Connection__Group_2_6_0__0 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7325:1: ( ( rule__Connection__Group_2_6_0__0 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7325:1: ( ( rule__Connection__Group_2_6_0__0 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7326:1: ( rule__Connection__Group_2_6_0__0 )
            {
             before(grammarAccess.getConnectionAccess().getGroup_2_6_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7327:1: ( rule__Connection__Group_2_6_0__0 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7327:2: rule__Connection__Group_2_6_0__0
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_0__0_in_rule__Connection__Group_2_6__0__Impl14385);
            rule__Connection__Group_2_6_0__0();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getGroup_2_6_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7337:1: rule__Connection__Group_2_6__1 : rule__Connection__Group_2_6__1__Impl ;
    public final void rule__Connection__Group_2_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7341:1: ( rule__Connection__Group_2_6__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7342:2: rule__Connection__Group_2_6__1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6__1__Impl_in_rule__Connection__Group_2_6__114415);
            rule__Connection__Group_2_6__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6__1"


    // $ANTLR start "rule__Connection__Group_2_6__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7348:1: rule__Connection__Group_2_6__1__Impl : ( ( rule__Connection__UnorderedGroup_2_6_1 ) ) ;
    public final void rule__Connection__Group_2_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7352:1: ( ( ( rule__Connection__UnorderedGroup_2_6_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7353:1: ( ( rule__Connection__UnorderedGroup_2_6_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7353:1: ( ( rule__Connection__UnorderedGroup_2_6_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7354:1: ( rule__Connection__UnorderedGroup_2_6_1 )
            {
             before(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7355:1: ( rule__Connection__UnorderedGroup_2_6_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7355:2: rule__Connection__UnorderedGroup_2_6_1
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1_in_rule__Connection__Group_2_6__1__Impl14442);
            rule__Connection__UnorderedGroup_2_6_1();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7369:1: rule__Connection__Group_2_6_0__0 : rule__Connection__Group_2_6_0__0__Impl rule__Connection__Group_2_6_0__1 ;
    public final void rule__Connection__Group_2_6_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7373:1: ( rule__Connection__Group_2_6_0__0__Impl rule__Connection__Group_2_6_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7374:2: rule__Connection__Group_2_6_0__0__Impl rule__Connection__Group_2_6_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_0__0__Impl_in_rule__Connection__Group_2_6_0__014476);
            rule__Connection__Group_2_6_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_0__1_in_rule__Connection__Group_2_6_0__014479);
            rule__Connection__Group_2_6_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_0__0"


    // $ANTLR start "rule__Connection__Group_2_6_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7381:1: rule__Connection__Group_2_6_0__0__Impl : ( 'Pool-Size' ) ;
    public final void rule__Connection__Group_2_6_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7385:1: ( ( 'Pool-Size' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7386:1: ( 'Pool-Size' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7386:1: ( 'Pool-Size' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7387:1: 'Pool-Size'
            {
             before(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_6_0_0()); 
            match(input,31,FOLLOW_31_in_rule__Connection__Group_2_6_0__0__Impl14507); 
             after(grammarAccess.getConnectionAccess().getPoolSizeKeyword_2_6_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7400:1: rule__Connection__Group_2_6_0__1 : rule__Connection__Group_2_6_0__1__Impl rule__Connection__Group_2_6_0__2 ;
    public final void rule__Connection__Group_2_6_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7404:1: ( rule__Connection__Group_2_6_0__1__Impl rule__Connection__Group_2_6_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7405:2: rule__Connection__Group_2_6_0__1__Impl rule__Connection__Group_2_6_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_0__1__Impl_in_rule__Connection__Group_2_6_0__114538);
            rule__Connection__Group_2_6_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_0__2_in_rule__Connection__Group_2_6_0__114541);
            rule__Connection__Group_2_6_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_0__1"


    // $ANTLR start "rule__Connection__Group_2_6_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7412:1: rule__Connection__Group_2_6_0__1__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7416:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7417:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7417:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7418:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_0_1()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_0__1__Impl14569); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7431:1: rule__Connection__Group_2_6_0__2 : rule__Connection__Group_2_6_0__2__Impl ;
    public final void rule__Connection__Group_2_6_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7435:1: ( rule__Connection__Group_2_6_0__2__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7436:2: rule__Connection__Group_2_6_0__2__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_0__2__Impl_in_rule__Connection__Group_2_6_0__214600);
            rule__Connection__Group_2_6_0__2__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_0__2"


    // $ANTLR start "rule__Connection__Group_2_6_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7442:1: rule__Connection__Group_2_6_0__2__Impl : ( ( rule__Connection__PoolsizeAssignment_2_6_0_2 ) ) ;
    public final void rule__Connection__Group_2_6_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7446:1: ( ( ( rule__Connection__PoolsizeAssignment_2_6_0_2 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7447:1: ( ( rule__Connection__PoolsizeAssignment_2_6_0_2 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7447:1: ( ( rule__Connection__PoolsizeAssignment_2_6_0_2 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7448:1: ( rule__Connection__PoolsizeAssignment_2_6_0_2 )
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_6_0_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7449:1: ( rule__Connection__PoolsizeAssignment_2_6_0_2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7449:2: rule__Connection__PoolsizeAssignment_2_6_0_2
            {
            pushFollow(FOLLOW_rule__Connection__PoolsizeAssignment_2_6_0_2_in_rule__Connection__Group_2_6_0__2__Impl14627);
            rule__Connection__PoolsizeAssignment_2_6_0_2();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPoolsizeAssignment_2_6_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7465:1: rule__Connection__Group_2_6_1_0__0 : rule__Connection__Group_2_6_1_0__0__Impl rule__Connection__Group_2_6_1_0__1 ;
    public final void rule__Connection__Group_2_6_1_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7469:1: ( rule__Connection__Group_2_6_1_0__0__Impl rule__Connection__Group_2_6_1_0__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7470:2: rule__Connection__Group_2_6_1_0__0__Impl rule__Connection__Group_2_6_1_0__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__0__Impl_in_rule__Connection__Group_2_6_1_0__014663);
            rule__Connection__Group_2_6_1_0__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__1_in_rule__Connection__Group_2_6_1_0__014666);
            rule__Connection__Group_2_6_1_0__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__0"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7477:1: rule__Connection__Group_2_6_1_0__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_6_1_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7481:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7482:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7482:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7483:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_0_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_6_1_0__0__Impl14694); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7496:1: rule__Connection__Group_2_6_1_0__1 : rule__Connection__Group_2_6_1_0__1__Impl rule__Connection__Group_2_6_1_0__2 ;
    public final void rule__Connection__Group_2_6_1_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7500:1: ( rule__Connection__Group_2_6_1_0__1__Impl rule__Connection__Group_2_6_1_0__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7501:2: rule__Connection__Group_2_6_1_0__1__Impl rule__Connection__Group_2_6_1_0__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__1__Impl_in_rule__Connection__Group_2_6_1_0__114725);
            rule__Connection__Group_2_6_1_0__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__2_in_rule__Connection__Group_2_6_1_0__114728);
            rule__Connection__Group_2_6_1_0__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__1"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7508:1: rule__Connection__Group_2_6_1_0__1__Impl : ( 'Type' ) ;
    public final void rule__Connection__Group_2_6_1_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7512:1: ( ( 'Type' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7513:1: ( 'Type' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7513:1: ( 'Type' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7514:1: 'Type'
            {
             before(grammarAccess.getConnectionAccess().getTypeKeyword_2_6_1_0_1()); 
            match(input,23,FOLLOW_23_in_rule__Connection__Group_2_6_1_0__1__Impl14756); 
             after(grammarAccess.getConnectionAccess().getTypeKeyword_2_6_1_0_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7527:1: rule__Connection__Group_2_6_1_0__2 : rule__Connection__Group_2_6_1_0__2__Impl rule__Connection__Group_2_6_1_0__3 ;
    public final void rule__Connection__Group_2_6_1_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7531:1: ( rule__Connection__Group_2_6_1_0__2__Impl rule__Connection__Group_2_6_1_0__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7532:2: rule__Connection__Group_2_6_1_0__2__Impl rule__Connection__Group_2_6_1_0__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__2__Impl_in_rule__Connection__Group_2_6_1_0__214787);
            rule__Connection__Group_2_6_1_0__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__3_in_rule__Connection__Group_2_6_1_0__214790);
            rule__Connection__Group_2_6_1_0__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__2"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7539:1: rule__Connection__Group_2_6_1_0__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_1_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7543:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7544:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7544:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7545:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_0_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_1_0__2__Impl14818); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_0_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7558:1: rule__Connection__Group_2_6_1_0__3 : rule__Connection__Group_2_6_1_0__3__Impl ;
    public final void rule__Connection__Group_2_6_1_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7562:1: ( rule__Connection__Group_2_6_1_0__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7563:2: rule__Connection__Group_2_6_1_0__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__3__Impl_in_rule__Connection__Group_2_6_1_0__314849);
            rule__Connection__Group_2_6_1_0__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__3"


    // $ANTLR start "rule__Connection__Group_2_6_1_0__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7569:1: rule__Connection__Group_2_6_1_0__3__Impl : ( ( rule__Connection__TypeAssignment_2_6_1_0_3 ) ) ;
    public final void rule__Connection__Group_2_6_1_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7573:1: ( ( ( rule__Connection__TypeAssignment_2_6_1_0_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7574:1: ( ( rule__Connection__TypeAssignment_2_6_1_0_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7574:1: ( ( rule__Connection__TypeAssignment_2_6_1_0_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7575:1: ( rule__Connection__TypeAssignment_2_6_1_0_3 )
            {
             before(grammarAccess.getConnectionAccess().getTypeAssignment_2_6_1_0_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7576:1: ( rule__Connection__TypeAssignment_2_6_1_0_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7576:2: rule__Connection__TypeAssignment_2_6_1_0_3
            {
            pushFollow(FOLLOW_rule__Connection__TypeAssignment_2_6_1_0_3_in_rule__Connection__Group_2_6_1_0__3__Impl14876);
            rule__Connection__TypeAssignment_2_6_1_0_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getTypeAssignment_2_6_1_0_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_0__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7594:1: rule__Connection__Group_2_6_1_1__0 : rule__Connection__Group_2_6_1_1__0__Impl rule__Connection__Group_2_6_1_1__1 ;
    public final void rule__Connection__Group_2_6_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7598:1: ( rule__Connection__Group_2_6_1_1__0__Impl rule__Connection__Group_2_6_1_1__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7599:2: rule__Connection__Group_2_6_1_1__0__Impl rule__Connection__Group_2_6_1_1__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__0__Impl_in_rule__Connection__Group_2_6_1_1__014914);
            rule__Connection__Group_2_6_1_1__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__1_in_rule__Connection__Group_2_6_1_1__014917);
            rule__Connection__Group_2_6_1_1__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__0"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7606:1: rule__Connection__Group_2_6_1_1__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_6_1_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7610:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7611:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7611:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7612:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_1_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_6_1_1__0__Impl14945); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7625:1: rule__Connection__Group_2_6_1_1__1 : rule__Connection__Group_2_6_1_1__1__Impl rule__Connection__Group_2_6_1_1__2 ;
    public final void rule__Connection__Group_2_6_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7629:1: ( rule__Connection__Group_2_6_1_1__1__Impl rule__Connection__Group_2_6_1_1__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7630:2: rule__Connection__Group_2_6_1_1__1__Impl rule__Connection__Group_2_6_1_1__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__1__Impl_in_rule__Connection__Group_2_6_1_1__114976);
            rule__Connection__Group_2_6_1_1__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__2_in_rule__Connection__Group_2_6_1_1__114979);
            rule__Connection__Group_2_6_1_1__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__1"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7637:1: rule__Connection__Group_2_6_1_1__1__Impl : ( 'Database' ) ;
    public final void rule__Connection__Group_2_6_1_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7641:1: ( ( 'Database' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7642:1: ( 'Database' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7642:1: ( 'Database' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7643:1: 'Database'
            {
             before(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_6_1_1_1()); 
            match(input,26,FOLLOW_26_in_rule__Connection__Group_2_6_1_1__1__Impl15007); 
             after(grammarAccess.getConnectionAccess().getDatabaseKeyword_2_6_1_1_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7656:1: rule__Connection__Group_2_6_1_1__2 : rule__Connection__Group_2_6_1_1__2__Impl rule__Connection__Group_2_6_1_1__3 ;
    public final void rule__Connection__Group_2_6_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7660:1: ( rule__Connection__Group_2_6_1_1__2__Impl rule__Connection__Group_2_6_1_1__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7661:2: rule__Connection__Group_2_6_1_1__2__Impl rule__Connection__Group_2_6_1_1__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__2__Impl_in_rule__Connection__Group_2_6_1_1__215038);
            rule__Connection__Group_2_6_1_1__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__3_in_rule__Connection__Group_2_6_1_1__215041);
            rule__Connection__Group_2_6_1_1__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__2"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7668:1: rule__Connection__Group_2_6_1_1__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_1_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7672:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7673:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7673:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7674:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_1_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_1_1__2__Impl15069); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_1_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7687:1: rule__Connection__Group_2_6_1_1__3 : rule__Connection__Group_2_6_1_1__3__Impl ;
    public final void rule__Connection__Group_2_6_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7691:1: ( rule__Connection__Group_2_6_1_1__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7692:2: rule__Connection__Group_2_6_1_1__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__3__Impl_in_rule__Connection__Group_2_6_1_1__315100);
            rule__Connection__Group_2_6_1_1__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__3"


    // $ANTLR start "rule__Connection__Group_2_6_1_1__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7698:1: rule__Connection__Group_2_6_1_1__3__Impl : ( ( rule__Connection__DbnameAssignment_2_6_1_1_3 ) ) ;
    public final void rule__Connection__Group_2_6_1_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7702:1: ( ( ( rule__Connection__DbnameAssignment_2_6_1_1_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7703:1: ( ( rule__Connection__DbnameAssignment_2_6_1_1_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7703:1: ( ( rule__Connection__DbnameAssignment_2_6_1_1_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7704:1: ( rule__Connection__DbnameAssignment_2_6_1_1_3 )
            {
             before(grammarAccess.getConnectionAccess().getDbnameAssignment_2_6_1_1_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7705:1: ( rule__Connection__DbnameAssignment_2_6_1_1_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7705:2: rule__Connection__DbnameAssignment_2_6_1_1_3
            {
            pushFollow(FOLLOW_rule__Connection__DbnameAssignment_2_6_1_1_3_in_rule__Connection__Group_2_6_1_1__3__Impl15127);
            rule__Connection__DbnameAssignment_2_6_1_1_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getDbnameAssignment_2_6_1_1_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_1__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7723:1: rule__Connection__Group_2_6_1_2__0 : rule__Connection__Group_2_6_1_2__0__Impl rule__Connection__Group_2_6_1_2__1 ;
    public final void rule__Connection__Group_2_6_1_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7727:1: ( rule__Connection__Group_2_6_1_2__0__Impl rule__Connection__Group_2_6_1_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7728:2: rule__Connection__Group_2_6_1_2__0__Impl rule__Connection__Group_2_6_1_2__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__0__Impl_in_rule__Connection__Group_2_6_1_2__015165);
            rule__Connection__Group_2_6_1_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__1_in_rule__Connection__Group_2_6_1_2__015168);
            rule__Connection__Group_2_6_1_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__0"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7735:1: rule__Connection__Group_2_6_1_2__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_6_1_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7739:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7740:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7740:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7741:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_2_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_6_1_2__0__Impl15196); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7754:1: rule__Connection__Group_2_6_1_2__1 : rule__Connection__Group_2_6_1_2__1__Impl rule__Connection__Group_2_6_1_2__2 ;
    public final void rule__Connection__Group_2_6_1_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7758:1: ( rule__Connection__Group_2_6_1_2__1__Impl rule__Connection__Group_2_6_1_2__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7759:2: rule__Connection__Group_2_6_1_2__1__Impl rule__Connection__Group_2_6_1_2__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__1__Impl_in_rule__Connection__Group_2_6_1_2__115227);
            rule__Connection__Group_2_6_1_2__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__2_in_rule__Connection__Group_2_6_1_2__115230);
            rule__Connection__Group_2_6_1_2__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__1"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7766:1: rule__Connection__Group_2_6_1_2__1__Impl : ( 'User' ) ;
    public final void rule__Connection__Group_2_6_1_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7770:1: ( ( 'User' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7771:1: ( 'User' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7771:1: ( 'User' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7772:1: 'User'
            {
             before(grammarAccess.getConnectionAccess().getUserKeyword_2_6_1_2_1()); 
            match(input,27,FOLLOW_27_in_rule__Connection__Group_2_6_1_2__1__Impl15258); 
             after(grammarAccess.getConnectionAccess().getUserKeyword_2_6_1_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7785:1: rule__Connection__Group_2_6_1_2__2 : rule__Connection__Group_2_6_1_2__2__Impl rule__Connection__Group_2_6_1_2__3 ;
    public final void rule__Connection__Group_2_6_1_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7789:1: ( rule__Connection__Group_2_6_1_2__2__Impl rule__Connection__Group_2_6_1_2__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7790:2: rule__Connection__Group_2_6_1_2__2__Impl rule__Connection__Group_2_6_1_2__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__2__Impl_in_rule__Connection__Group_2_6_1_2__215289);
            rule__Connection__Group_2_6_1_2__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__3_in_rule__Connection__Group_2_6_1_2__215292);
            rule__Connection__Group_2_6_1_2__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__2"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7797:1: rule__Connection__Group_2_6_1_2__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_1_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7801:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7802:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7802:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7803:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_2_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_1_2__2__Impl15320); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_2_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7816:1: rule__Connection__Group_2_6_1_2__3 : rule__Connection__Group_2_6_1_2__3__Impl ;
    public final void rule__Connection__Group_2_6_1_2__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7820:1: ( rule__Connection__Group_2_6_1_2__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7821:2: rule__Connection__Group_2_6_1_2__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__3__Impl_in_rule__Connection__Group_2_6_1_2__315351);
            rule__Connection__Group_2_6_1_2__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__3"


    // $ANTLR start "rule__Connection__Group_2_6_1_2__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7827:1: rule__Connection__Group_2_6_1_2__3__Impl : ( ( rule__Connection__UserAssignment_2_6_1_2_3 ) ) ;
    public final void rule__Connection__Group_2_6_1_2__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7831:1: ( ( ( rule__Connection__UserAssignment_2_6_1_2_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7832:1: ( ( rule__Connection__UserAssignment_2_6_1_2_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7832:1: ( ( rule__Connection__UserAssignment_2_6_1_2_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7833:1: ( rule__Connection__UserAssignment_2_6_1_2_3 )
            {
             before(grammarAccess.getConnectionAccess().getUserAssignment_2_6_1_2_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7834:1: ( rule__Connection__UserAssignment_2_6_1_2_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7834:2: rule__Connection__UserAssignment_2_6_1_2_3
            {
            pushFollow(FOLLOW_rule__Connection__UserAssignment_2_6_1_2_3_in_rule__Connection__Group_2_6_1_2__3__Impl15378);
            rule__Connection__UserAssignment_2_6_1_2_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUserAssignment_2_6_1_2_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_2__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7852:1: rule__Connection__Group_2_6_1_3__0 : rule__Connection__Group_2_6_1_3__0__Impl rule__Connection__Group_2_6_1_3__1 ;
    public final void rule__Connection__Group_2_6_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7856:1: ( rule__Connection__Group_2_6_1_3__0__Impl rule__Connection__Group_2_6_1_3__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7857:2: rule__Connection__Group_2_6_1_3__0__Impl rule__Connection__Group_2_6_1_3__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__0__Impl_in_rule__Connection__Group_2_6_1_3__015416);
            rule__Connection__Group_2_6_1_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__1_in_rule__Connection__Group_2_6_1_3__015419);
            rule__Connection__Group_2_6_1_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__0"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7864:1: rule__Connection__Group_2_6_1_3__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_6_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7868:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7869:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7869:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7870:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_3_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_6_1_3__0__Impl15447); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7883:1: rule__Connection__Group_2_6_1_3__1 : rule__Connection__Group_2_6_1_3__1__Impl rule__Connection__Group_2_6_1_3__2 ;
    public final void rule__Connection__Group_2_6_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7887:1: ( rule__Connection__Group_2_6_1_3__1__Impl rule__Connection__Group_2_6_1_3__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7888:2: rule__Connection__Group_2_6_1_3__1__Impl rule__Connection__Group_2_6_1_3__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__1__Impl_in_rule__Connection__Group_2_6_1_3__115478);
            rule__Connection__Group_2_6_1_3__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__2_in_rule__Connection__Group_2_6_1_3__115481);
            rule__Connection__Group_2_6_1_3__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__1"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7895:1: rule__Connection__Group_2_6_1_3__1__Impl : ( 'Password' ) ;
    public final void rule__Connection__Group_2_6_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7899:1: ( ( 'Password' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7900:1: ( 'Password' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7900:1: ( 'Password' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7901:1: 'Password'
            {
             before(grammarAccess.getConnectionAccess().getPasswordKeyword_2_6_1_3_1()); 
            match(input,28,FOLLOW_28_in_rule__Connection__Group_2_6_1_3__1__Impl15509); 
             after(grammarAccess.getConnectionAccess().getPasswordKeyword_2_6_1_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7914:1: rule__Connection__Group_2_6_1_3__2 : rule__Connection__Group_2_6_1_3__2__Impl rule__Connection__Group_2_6_1_3__3 ;
    public final void rule__Connection__Group_2_6_1_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7918:1: ( rule__Connection__Group_2_6_1_3__2__Impl rule__Connection__Group_2_6_1_3__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7919:2: rule__Connection__Group_2_6_1_3__2__Impl rule__Connection__Group_2_6_1_3__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__2__Impl_in_rule__Connection__Group_2_6_1_3__215540);
            rule__Connection__Group_2_6_1_3__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__3_in_rule__Connection__Group_2_6_1_3__215543);
            rule__Connection__Group_2_6_1_3__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__2"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7926:1: rule__Connection__Group_2_6_1_3__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_1_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7930:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7931:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7931:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7932:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_3_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_1_3__2__Impl15571); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_3_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7945:1: rule__Connection__Group_2_6_1_3__3 : rule__Connection__Group_2_6_1_3__3__Impl ;
    public final void rule__Connection__Group_2_6_1_3__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7949:1: ( rule__Connection__Group_2_6_1_3__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7950:2: rule__Connection__Group_2_6_1_3__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__3__Impl_in_rule__Connection__Group_2_6_1_3__315602);
            rule__Connection__Group_2_6_1_3__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__3"


    // $ANTLR start "rule__Connection__Group_2_6_1_3__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7956:1: rule__Connection__Group_2_6_1_3__3__Impl : ( ( rule__Connection__PasswordAssignment_2_6_1_3_3 ) ) ;
    public final void rule__Connection__Group_2_6_1_3__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7960:1: ( ( ( rule__Connection__PasswordAssignment_2_6_1_3_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7961:1: ( ( rule__Connection__PasswordAssignment_2_6_1_3_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7961:1: ( ( rule__Connection__PasswordAssignment_2_6_1_3_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7962:1: ( rule__Connection__PasswordAssignment_2_6_1_3_3 )
            {
             before(grammarAccess.getConnectionAccess().getPasswordAssignment_2_6_1_3_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7963:1: ( rule__Connection__PasswordAssignment_2_6_1_3_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7963:2: rule__Connection__PasswordAssignment_2_6_1_3_3
            {
            pushFollow(FOLLOW_rule__Connection__PasswordAssignment_2_6_1_3_3_in_rule__Connection__Group_2_6_1_3__3__Impl15629);
            rule__Connection__PasswordAssignment_2_6_1_3_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPasswordAssignment_2_6_1_3_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_3__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7981:1: rule__Connection__Group_2_6_1_4__0 : rule__Connection__Group_2_6_1_4__0__Impl rule__Connection__Group_2_6_1_4__1 ;
    public final void rule__Connection__Group_2_6_1_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7985:1: ( rule__Connection__Group_2_6_1_4__0__Impl rule__Connection__Group_2_6_1_4__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7986:2: rule__Connection__Group_2_6_1_4__0__Impl rule__Connection__Group_2_6_1_4__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__0__Impl_in_rule__Connection__Group_2_6_1_4__015667);
            rule__Connection__Group_2_6_1_4__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__1_in_rule__Connection__Group_2_6_1_4__015670);
            rule__Connection__Group_2_6_1_4__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__0"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7993:1: rule__Connection__Group_2_6_1_4__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_6_1_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7997:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7998:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7998:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:7999:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_4_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_6_1_4__0__Impl15698); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8012:1: rule__Connection__Group_2_6_1_4__1 : rule__Connection__Group_2_6_1_4__1__Impl rule__Connection__Group_2_6_1_4__2 ;
    public final void rule__Connection__Group_2_6_1_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8016:1: ( rule__Connection__Group_2_6_1_4__1__Impl rule__Connection__Group_2_6_1_4__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8017:2: rule__Connection__Group_2_6_1_4__1__Impl rule__Connection__Group_2_6_1_4__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__1__Impl_in_rule__Connection__Group_2_6_1_4__115729);
            rule__Connection__Group_2_6_1_4__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__2_in_rule__Connection__Group_2_6_1_4__115732);
            rule__Connection__Group_2_6_1_4__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__1"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8024:1: rule__Connection__Group_2_6_1_4__1__Impl : ( 'URL' ) ;
    public final void rule__Connection__Group_2_6_1_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8028:1: ( ( 'URL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8029:1: ( 'URL' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8029:1: ( 'URL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8030:1: 'URL'
            {
             before(grammarAccess.getConnectionAccess().getURLKeyword_2_6_1_4_1()); 
            match(input,29,FOLLOW_29_in_rule__Connection__Group_2_6_1_4__1__Impl15760); 
             after(grammarAccess.getConnectionAccess().getURLKeyword_2_6_1_4_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8043:1: rule__Connection__Group_2_6_1_4__2 : rule__Connection__Group_2_6_1_4__2__Impl rule__Connection__Group_2_6_1_4__3 ;
    public final void rule__Connection__Group_2_6_1_4__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8047:1: ( rule__Connection__Group_2_6_1_4__2__Impl rule__Connection__Group_2_6_1_4__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8048:2: rule__Connection__Group_2_6_1_4__2__Impl rule__Connection__Group_2_6_1_4__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__2__Impl_in_rule__Connection__Group_2_6_1_4__215791);
            rule__Connection__Group_2_6_1_4__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__3_in_rule__Connection__Group_2_6_1_4__215794);
            rule__Connection__Group_2_6_1_4__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__2"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8055:1: rule__Connection__Group_2_6_1_4__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_1_4__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8059:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8060:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8060:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8061:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_4_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_1_4__2__Impl15822); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_4_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8074:1: rule__Connection__Group_2_6_1_4__3 : rule__Connection__Group_2_6_1_4__3__Impl ;
    public final void rule__Connection__Group_2_6_1_4__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8078:1: ( rule__Connection__Group_2_6_1_4__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8079:2: rule__Connection__Group_2_6_1_4__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__3__Impl_in_rule__Connection__Group_2_6_1_4__315853);
            rule__Connection__Group_2_6_1_4__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__3"


    // $ANTLR start "rule__Connection__Group_2_6_1_4__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8085:1: rule__Connection__Group_2_6_1_4__3__Impl : ( ( rule__Connection__UrlAssignment_2_6_1_4_3 ) ) ;
    public final void rule__Connection__Group_2_6_1_4__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8089:1: ( ( ( rule__Connection__UrlAssignment_2_6_1_4_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8090:1: ( ( rule__Connection__UrlAssignment_2_6_1_4_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8090:1: ( ( rule__Connection__UrlAssignment_2_6_1_4_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8091:1: ( rule__Connection__UrlAssignment_2_6_1_4_3 )
            {
             before(grammarAccess.getConnectionAccess().getUrlAssignment_2_6_1_4_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8092:1: ( rule__Connection__UrlAssignment_2_6_1_4_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8092:2: rule__Connection__UrlAssignment_2_6_1_4_3
            {
            pushFollow(FOLLOW_rule__Connection__UrlAssignment_2_6_1_4_3_in_rule__Connection__Group_2_6_1_4__3__Impl15880);
            rule__Connection__UrlAssignment_2_6_1_4_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getUrlAssignment_2_6_1_4_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_4__3__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8110:1: rule__Connection__Group_2_6_1_5__0 : rule__Connection__Group_2_6_1_5__0__Impl rule__Connection__Group_2_6_1_5__1 ;
    public final void rule__Connection__Group_2_6_1_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8114:1: ( rule__Connection__Group_2_6_1_5__0__Impl rule__Connection__Group_2_6_1_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8115:2: rule__Connection__Group_2_6_1_5__0__Impl rule__Connection__Group_2_6_1_5__1
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__0__Impl_in_rule__Connection__Group_2_6_1_5__015918);
            rule__Connection__Group_2_6_1_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__1_in_rule__Connection__Group_2_6_1_5__015921);
            rule__Connection__Group_2_6_1_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__0"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8122:1: rule__Connection__Group_2_6_1_5__0__Impl : ( ',' ) ;
    public final void rule__Connection__Group_2_6_1_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8126:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8127:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8127:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8128:1: ','
            {
             before(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_5_0()); 
            match(input,25,FOLLOW_25_in_rule__Connection__Group_2_6_1_5__0__Impl15949); 
             after(grammarAccess.getConnectionAccess().getCommaKeyword_2_6_1_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__0__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8141:1: rule__Connection__Group_2_6_1_5__1 : rule__Connection__Group_2_6_1_5__1__Impl rule__Connection__Group_2_6_1_5__2 ;
    public final void rule__Connection__Group_2_6_1_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8145:1: ( rule__Connection__Group_2_6_1_5__1__Impl rule__Connection__Group_2_6_1_5__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8146:2: rule__Connection__Group_2_6_1_5__1__Impl rule__Connection__Group_2_6_1_5__2
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__1__Impl_in_rule__Connection__Group_2_6_1_5__115980);
            rule__Connection__Group_2_6_1_5__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__2_in_rule__Connection__Group_2_6_1_5__115983);
            rule__Connection__Group_2_6_1_5__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__1"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8153:1: rule__Connection__Group_2_6_1_5__1__Impl : ( 'Port' ) ;
    public final void rule__Connection__Group_2_6_1_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8157:1: ( ( 'Port' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8158:1: ( 'Port' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8158:1: ( 'Port' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8159:1: 'Port'
            {
             before(grammarAccess.getConnectionAccess().getPortKeyword_2_6_1_5_1()); 
            match(input,30,FOLLOW_30_in_rule__Connection__Group_2_6_1_5__1__Impl16011); 
             after(grammarAccess.getConnectionAccess().getPortKeyword_2_6_1_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__1__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8172:1: rule__Connection__Group_2_6_1_5__2 : rule__Connection__Group_2_6_1_5__2__Impl rule__Connection__Group_2_6_1_5__3 ;
    public final void rule__Connection__Group_2_6_1_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8176:1: ( rule__Connection__Group_2_6_1_5__2__Impl rule__Connection__Group_2_6_1_5__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8177:2: rule__Connection__Group_2_6_1_5__2__Impl rule__Connection__Group_2_6_1_5__3
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__2__Impl_in_rule__Connection__Group_2_6_1_5__216042);
            rule__Connection__Group_2_6_1_5__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__3_in_rule__Connection__Group_2_6_1_5__216045);
            rule__Connection__Group_2_6_1_5__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__2"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8184:1: rule__Connection__Group_2_6_1_5__2__Impl : ( '=' ) ;
    public final void rule__Connection__Group_2_6_1_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8188:1: ( ( '=' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8189:1: ( '=' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8189:1: ( '=' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8190:1: '='
            {
             before(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_5_2()); 
            match(input,24,FOLLOW_24_in_rule__Connection__Group_2_6_1_5__2__Impl16073); 
             after(grammarAccess.getConnectionAccess().getEqualsSignKeyword_2_6_1_5_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__2__Impl"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8203:1: rule__Connection__Group_2_6_1_5__3 : rule__Connection__Group_2_6_1_5__3__Impl ;
    public final void rule__Connection__Group_2_6_1_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8207:1: ( rule__Connection__Group_2_6_1_5__3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8208:2: rule__Connection__Group_2_6_1_5__3__Impl
            {
            pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__3__Impl_in_rule__Connection__Group_2_6_1_5__316104);
            rule__Connection__Group_2_6_1_5__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__3"


    // $ANTLR start "rule__Connection__Group_2_6_1_5__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8214:1: rule__Connection__Group_2_6_1_5__3__Impl : ( ( rule__Connection__PortAssignment_2_6_1_5_3 ) ) ;
    public final void rule__Connection__Group_2_6_1_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8218:1: ( ( ( rule__Connection__PortAssignment_2_6_1_5_3 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8219:1: ( ( rule__Connection__PortAssignment_2_6_1_5_3 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8219:1: ( ( rule__Connection__PortAssignment_2_6_1_5_3 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8220:1: ( rule__Connection__PortAssignment_2_6_1_5_3 )
            {
             before(grammarAccess.getConnectionAccess().getPortAssignment_2_6_1_5_3()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8221:1: ( rule__Connection__PortAssignment_2_6_1_5_3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8221:2: rule__Connection__PortAssignment_2_6_1_5_3
            {
            pushFollow(FOLLOW_rule__Connection__PortAssignment_2_6_1_5_3_in_rule__Connection__Group_2_6_1_5__3__Impl16131);
            rule__Connection__PortAssignment_2_6_1_5_3();

            state._fsp--;


            }

             after(grammarAccess.getConnectionAccess().getPortAssignment_2_6_1_5_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__Group_2_6_1_5__3__Impl"


    // $ANTLR start "rule__CreateDAO__Group__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8239:1: rule__CreateDAO__Group__0 : rule__CreateDAO__Group__0__Impl rule__CreateDAO__Group__1 ;
    public final void rule__CreateDAO__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8243:1: ( rule__CreateDAO__Group__0__Impl rule__CreateDAO__Group__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8244:2: rule__CreateDAO__Group__0__Impl rule__CreateDAO__Group__1
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__0__Impl_in_rule__CreateDAO__Group__016169);
            rule__CreateDAO__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group__1_in_rule__CreateDAO__Group__016172);
            rule__CreateDAO__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__0"


    // $ANTLR start "rule__CreateDAO__Group__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8251:1: rule__CreateDAO__Group__0__Impl : ( ( rule__CreateDAO__BasedaoAssignment_0 )? ) ;
    public final void rule__CreateDAO__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8255:1: ( ( ( rule__CreateDAO__BasedaoAssignment_0 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8256:1: ( ( rule__CreateDAO__BasedaoAssignment_0 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8256:1: ( ( rule__CreateDAO__BasedaoAssignment_0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8257:1: ( rule__CreateDAO__BasedaoAssignment_0 )?
            {
             before(grammarAccess.getCreateDAOAccess().getBasedaoAssignment_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8258:1: ( rule__CreateDAO__BasedaoAssignment_0 )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==41) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8258:2: rule__CreateDAO__BasedaoAssignment_0
                    {
                    pushFollow(FOLLOW_rule__CreateDAO__BasedaoAssignment_0_in_rule__CreateDAO__Group__0__Impl16199);
                    rule__CreateDAO__BasedaoAssignment_0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getCreateDAOAccess().getBasedaoAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__0__Impl"


    // $ANTLR start "rule__CreateDAO__Group__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8268:1: rule__CreateDAO__Group__1 : rule__CreateDAO__Group__1__Impl rule__CreateDAO__Group__2 ;
    public final void rule__CreateDAO__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8272:1: ( rule__CreateDAO__Group__1__Impl rule__CreateDAO__Group__2 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8273:2: rule__CreateDAO__Group__1__Impl rule__CreateDAO__Group__2
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__1__Impl_in_rule__CreateDAO__Group__116230);
            rule__CreateDAO__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group__2_in_rule__CreateDAO__Group__116233);
            rule__CreateDAO__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__1"


    // $ANTLR start "rule__CreateDAO__Group__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8280:1: rule__CreateDAO__Group__1__Impl : ( 'create-dao' ) ;
    public final void rule__CreateDAO__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8284:1: ( ( 'create-dao' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8285:1: ( 'create-dao' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8285:1: ( 'create-dao' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8286:1: 'create-dao'
            {
             before(grammarAccess.getCreateDAOAccess().getCreateDaoKeyword_1()); 
            match(input,32,FOLLOW_32_in_rule__CreateDAO__Group__1__Impl16261); 
             after(grammarAccess.getCreateDAOAccess().getCreateDaoKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__1__Impl"


    // $ANTLR start "rule__CreateDAO__Group__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8299:1: rule__CreateDAO__Group__2 : rule__CreateDAO__Group__2__Impl rule__CreateDAO__Group__3 ;
    public final void rule__CreateDAO__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8303:1: ( rule__CreateDAO__Group__2__Impl rule__CreateDAO__Group__3 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8304:2: rule__CreateDAO__Group__2__Impl rule__CreateDAO__Group__3
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__2__Impl_in_rule__CreateDAO__Group__216292);
            rule__CreateDAO__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group__3_in_rule__CreateDAO__Group__216295);
            rule__CreateDAO__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__2"


    // $ANTLR start "rule__CreateDAO__Group__2__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8311:1: rule__CreateDAO__Group__2__Impl : ( ( rule__CreateDAO__Group_2__0 )? ) ;
    public final void rule__CreateDAO__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8315:1: ( ( ( rule__CreateDAO__Group_2__0 )? ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8316:1: ( ( rule__CreateDAO__Group_2__0 )? )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8316:1: ( ( rule__CreateDAO__Group_2__0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8317:1: ( rule__CreateDAO__Group_2__0 )?
            {
             before(grammarAccess.getCreateDAOAccess().getGroup_2()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8318:1: ( rule__CreateDAO__Group_2__0 )?
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==33) ) {
                alt16=1;
            }
            switch (alt16) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8318:2: rule__CreateDAO__Group_2__0
                    {
                    pushFollow(FOLLOW_rule__CreateDAO__Group_2__0_in_rule__CreateDAO__Group__2__Impl16322);
                    rule__CreateDAO__Group_2__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getCreateDAOAccess().getGroup_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__2__Impl"


    // $ANTLR start "rule__CreateDAO__Group__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8328:1: rule__CreateDAO__Group__3 : rule__CreateDAO__Group__3__Impl rule__CreateDAO__Group__4 ;
    public final void rule__CreateDAO__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8332:1: ( rule__CreateDAO__Group__3__Impl rule__CreateDAO__Group__4 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8333:2: rule__CreateDAO__Group__3__Impl rule__CreateDAO__Group__4
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__3__Impl_in_rule__CreateDAO__Group__316353);
            rule__CreateDAO__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group__4_in_rule__CreateDAO__Group__316356);
            rule__CreateDAO__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__3"


    // $ANTLR start "rule__CreateDAO__Group__3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8340:1: rule__CreateDAO__Group__3__Impl : ( '(' ) ;
    public final void rule__CreateDAO__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8344:1: ( ( '(' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8345:1: ( '(' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8345:1: ( '(' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8346:1: '('
            {
             before(grammarAccess.getCreateDAOAccess().getLeftParenthesisKeyword_3()); 
            match(input,21,FOLLOW_21_in_rule__CreateDAO__Group__3__Impl16384); 
             after(grammarAccess.getCreateDAOAccess().getLeftParenthesisKeyword_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__3__Impl"


    // $ANTLR start "rule__CreateDAO__Group__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8359:1: rule__CreateDAO__Group__4 : rule__CreateDAO__Group__4__Impl rule__CreateDAO__Group__5 ;
    public final void rule__CreateDAO__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8363:1: ( rule__CreateDAO__Group__4__Impl rule__CreateDAO__Group__5 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8364:2: rule__CreateDAO__Group__4__Impl rule__CreateDAO__Group__5
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__4__Impl_in_rule__CreateDAO__Group__416415);
            rule__CreateDAO__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group__5_in_rule__CreateDAO__Group__416418);
            rule__CreateDAO__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__4"


    // $ANTLR start "rule__CreateDAO__Group__4__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8371:1: rule__CreateDAO__Group__4__Impl : ( ( rule__CreateDAO__FirstEntityAssignment_4 ) ) ;
    public final void rule__CreateDAO__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8375:1: ( ( ( rule__CreateDAO__FirstEntityAssignment_4 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8376:1: ( ( rule__CreateDAO__FirstEntityAssignment_4 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8376:1: ( ( rule__CreateDAO__FirstEntityAssignment_4 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8377:1: ( rule__CreateDAO__FirstEntityAssignment_4 )
            {
             before(grammarAccess.getCreateDAOAccess().getFirstEntityAssignment_4()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8378:1: ( rule__CreateDAO__FirstEntityAssignment_4 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8378:2: rule__CreateDAO__FirstEntityAssignment_4
            {
            pushFollow(FOLLOW_rule__CreateDAO__FirstEntityAssignment_4_in_rule__CreateDAO__Group__4__Impl16445);
            rule__CreateDAO__FirstEntityAssignment_4();

            state._fsp--;


            }

             after(grammarAccess.getCreateDAOAccess().getFirstEntityAssignment_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__4__Impl"


    // $ANTLR start "rule__CreateDAO__Group__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8388:1: rule__CreateDAO__Group__5 : rule__CreateDAO__Group__5__Impl rule__CreateDAO__Group__6 ;
    public final void rule__CreateDAO__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8392:1: ( rule__CreateDAO__Group__5__Impl rule__CreateDAO__Group__6 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8393:2: rule__CreateDAO__Group__5__Impl rule__CreateDAO__Group__6
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__5__Impl_in_rule__CreateDAO__Group__516475);
            rule__CreateDAO__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group__6_in_rule__CreateDAO__Group__516478);
            rule__CreateDAO__Group__6();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__5"


    // $ANTLR start "rule__CreateDAO__Group__5__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8400:1: rule__CreateDAO__Group__5__Impl : ( ( rule__CreateDAO__Group_5__0 )* ) ;
    public final void rule__CreateDAO__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8404:1: ( ( ( rule__CreateDAO__Group_5__0 )* ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8405:1: ( ( rule__CreateDAO__Group_5__0 )* )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8405:1: ( ( rule__CreateDAO__Group_5__0 )* )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8406:1: ( rule__CreateDAO__Group_5__0 )*
            {
             before(grammarAccess.getCreateDAOAccess().getGroup_5()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8407:1: ( rule__CreateDAO__Group_5__0 )*
            loop17:
            do {
                int alt17=2;
                int LA17_0 = input.LA(1);

                if ( (LA17_0==25) ) {
                    alt17=1;
                }


                switch (alt17) {
            	case 1 :
            	    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8407:2: rule__CreateDAO__Group_5__0
            	    {
            	    pushFollow(FOLLOW_rule__CreateDAO__Group_5__0_in_rule__CreateDAO__Group__5__Impl16505);
            	    rule__CreateDAO__Group_5__0();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop17;
                }
            } while (true);

             after(grammarAccess.getCreateDAOAccess().getGroup_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__5__Impl"


    // $ANTLR start "rule__CreateDAO__Group__6"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8417:1: rule__CreateDAO__Group__6 : rule__CreateDAO__Group__6__Impl ;
    public final void rule__CreateDAO__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8421:1: ( rule__CreateDAO__Group__6__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8422:2: rule__CreateDAO__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group__6__Impl_in_rule__CreateDAO__Group__616536);
            rule__CreateDAO__Group__6__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__6"


    // $ANTLR start "rule__CreateDAO__Group__6__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8428:1: rule__CreateDAO__Group__6__Impl : ( ')' ) ;
    public final void rule__CreateDAO__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8432:1: ( ( ')' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8433:1: ( ')' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8433:1: ( ')' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8434:1: ')'
            {
             before(grammarAccess.getCreateDAOAccess().getRightParenthesisKeyword_6()); 
            match(input,22,FOLLOW_22_in_rule__CreateDAO__Group__6__Impl16564); 
             after(grammarAccess.getCreateDAOAccess().getRightParenthesisKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group__6__Impl"


    // $ANTLR start "rule__CreateDAO__Group_2__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8461:1: rule__CreateDAO__Group_2__0 : rule__CreateDAO__Group_2__0__Impl rule__CreateDAO__Group_2__1 ;
    public final void rule__CreateDAO__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8465:1: ( rule__CreateDAO__Group_2__0__Impl rule__CreateDAO__Group_2__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8466:2: rule__CreateDAO__Group_2__0__Impl rule__CreateDAO__Group_2__1
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group_2__0__Impl_in_rule__CreateDAO__Group_2__016609);
            rule__CreateDAO__Group_2__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group_2__1_in_rule__CreateDAO__Group_2__016612);
            rule__CreateDAO__Group_2__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_2__0"


    // $ANTLR start "rule__CreateDAO__Group_2__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8473:1: rule__CreateDAO__Group_2__0__Impl : ( 'on-layer' ) ;
    public final void rule__CreateDAO__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8477:1: ( ( 'on-layer' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8478:1: ( 'on-layer' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8478:1: ( 'on-layer' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8479:1: 'on-layer'
            {
             before(grammarAccess.getCreateDAOAccess().getOnLayerKeyword_2_0()); 
            match(input,33,FOLLOW_33_in_rule__CreateDAO__Group_2__0__Impl16640); 
             after(grammarAccess.getCreateDAOAccess().getOnLayerKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_2__0__Impl"


    // $ANTLR start "rule__CreateDAO__Group_2__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8492:1: rule__CreateDAO__Group_2__1 : rule__CreateDAO__Group_2__1__Impl ;
    public final void rule__CreateDAO__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8496:1: ( rule__CreateDAO__Group_2__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8497:2: rule__CreateDAO__Group_2__1__Impl
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group_2__1__Impl_in_rule__CreateDAO__Group_2__116671);
            rule__CreateDAO__Group_2__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_2__1"


    // $ANTLR start "rule__CreateDAO__Group_2__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8503:1: rule__CreateDAO__Group_2__1__Impl : ( ( rule__CreateDAO__DaolayerAssignment_2_1 ) ) ;
    public final void rule__CreateDAO__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8507:1: ( ( ( rule__CreateDAO__DaolayerAssignment_2_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8508:1: ( ( rule__CreateDAO__DaolayerAssignment_2_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8508:1: ( ( rule__CreateDAO__DaolayerAssignment_2_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8509:1: ( rule__CreateDAO__DaolayerAssignment_2_1 )
            {
             before(grammarAccess.getCreateDAOAccess().getDaolayerAssignment_2_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8510:1: ( rule__CreateDAO__DaolayerAssignment_2_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8510:2: rule__CreateDAO__DaolayerAssignment_2_1
            {
            pushFollow(FOLLOW_rule__CreateDAO__DaolayerAssignment_2_1_in_rule__CreateDAO__Group_2__1__Impl16698);
            rule__CreateDAO__DaolayerAssignment_2_1();

            state._fsp--;


            }

             after(grammarAccess.getCreateDAOAccess().getDaolayerAssignment_2_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_2__1__Impl"


    // $ANTLR start "rule__CreateDAO__Group_5__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8524:1: rule__CreateDAO__Group_5__0 : rule__CreateDAO__Group_5__0__Impl rule__CreateDAO__Group_5__1 ;
    public final void rule__CreateDAO__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8528:1: ( rule__CreateDAO__Group_5__0__Impl rule__CreateDAO__Group_5__1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8529:2: rule__CreateDAO__Group_5__0__Impl rule__CreateDAO__Group_5__1
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group_5__0__Impl_in_rule__CreateDAO__Group_5__016732);
            rule__CreateDAO__Group_5__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__CreateDAO__Group_5__1_in_rule__CreateDAO__Group_5__016735);
            rule__CreateDAO__Group_5__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_5__0"


    // $ANTLR start "rule__CreateDAO__Group_5__0__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8536:1: rule__CreateDAO__Group_5__0__Impl : ( ',' ) ;
    public final void rule__CreateDAO__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8540:1: ( ( ',' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8541:1: ( ',' )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8541:1: ( ',' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8542:1: ','
            {
             before(grammarAccess.getCreateDAOAccess().getCommaKeyword_5_0()); 
            match(input,25,FOLLOW_25_in_rule__CreateDAO__Group_5__0__Impl16763); 
             after(grammarAccess.getCreateDAOAccess().getCommaKeyword_5_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_5__0__Impl"


    // $ANTLR start "rule__CreateDAO__Group_5__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8555:1: rule__CreateDAO__Group_5__1 : rule__CreateDAO__Group_5__1__Impl ;
    public final void rule__CreateDAO__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8559:1: ( rule__CreateDAO__Group_5__1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8560:2: rule__CreateDAO__Group_5__1__Impl
            {
            pushFollow(FOLLOW_rule__CreateDAO__Group_5__1__Impl_in_rule__CreateDAO__Group_5__116794);
            rule__CreateDAO__Group_5__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_5__1"


    // $ANTLR start "rule__CreateDAO__Group_5__1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8566:1: rule__CreateDAO__Group_5__1__Impl : ( ( rule__CreateDAO__EntitiesAssignment_5_1 ) ) ;
    public final void rule__CreateDAO__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8570:1: ( ( ( rule__CreateDAO__EntitiesAssignment_5_1 ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8571:1: ( ( rule__CreateDAO__EntitiesAssignment_5_1 ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8571:1: ( ( rule__CreateDAO__EntitiesAssignment_5_1 ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8572:1: ( rule__CreateDAO__EntitiesAssignment_5_1 )
            {
             before(grammarAccess.getCreateDAOAccess().getEntitiesAssignment_5_1()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8573:1: ( rule__CreateDAO__EntitiesAssignment_5_1 )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8573:2: rule__CreateDAO__EntitiesAssignment_5_1
            {
            pushFollow(FOLLOW_rule__CreateDAO__EntitiesAssignment_5_1_in_rule__CreateDAO__Group_5__1__Impl16821);
            rule__CreateDAO__EntitiesAssignment_5_1();

            state._fsp--;


            }

             after(grammarAccess.getCreateDAOAccess().getEntitiesAssignment_5_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__Group_5__1__Impl"


    // $ANTLR start "rule__Model__UnorderedGroup_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8588:1: rule__Model__UnorderedGroup_1 : ( rule__Model__UnorderedGroup_1__0 )? ;
    public final void rule__Model__UnorderedGroup_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getModelAccess().getUnorderedGroup_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8593:1: ( ( rule__Model__UnorderedGroup_1__0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8594:2: ( rule__Model__UnorderedGroup_1__0 )?
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8594:2: ( rule__Model__UnorderedGroup_1__0 )?
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( LA18_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 0) ) {
                alt18=1;
            }
            else if ( (LA18_0==32||LA18_0==41) && getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 1) ) {
                alt18=1;
            }
            switch (alt18) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8594:2: rule__Model__UnorderedGroup_1__0
                    {
                    pushFollow(FOLLOW_rule__Model__UnorderedGroup_1__0_in_rule__Model__UnorderedGroup_116856);
                    rule__Model__UnorderedGroup_1__0();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getModelAccess().getUnorderedGroup_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__UnorderedGroup_1"


    // $ANTLR start "rule__Model__UnorderedGroup_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8604:1: rule__Model__UnorderedGroup_1__Impl : ( ({...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) ) ) | ({...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) ) ) ) ;
    public final void rule__Model__UnorderedGroup_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8609:1: ( ( ({...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) ) ) | ({...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8610:3: ( ({...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) ) ) | ({...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8610:3: ( ({...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) ) ) | ({...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) ) ) )
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( LA19_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 0) ) {
                alt19=1;
            }
            else if ( (LA19_0==32||LA19_0==41) && getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 1) ) {
                alt19=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;
            }
            switch (alt19) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8612:4: ({...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8612:4: ({...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8613:5: {...}? => ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Model__UnorderedGroup_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8613:102: ( ( ( rule__Model__ConnectionAssignment_1_0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8614:6: ( ( rule__Model__ConnectionAssignment_1_0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getModelAccess().getUnorderedGroup_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8620:6: ( ( rule__Model__ConnectionAssignment_1_0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8622:7: ( rule__Model__ConnectionAssignment_1_0 )
                    {
                     before(grammarAccess.getModelAccess().getConnectionAssignment_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8623:7: ( rule__Model__ConnectionAssignment_1_0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8623:8: rule__Model__ConnectionAssignment_1_0
                    {
                    pushFollow(FOLLOW_rule__Model__ConnectionAssignment_1_0_in_rule__Model__UnorderedGroup_1__Impl16943);
                    rule__Model__ConnectionAssignment_1_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getModelAccess().getConnectionAssignment_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8629:4: ({...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8629:4: ({...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8630:5: {...}? => ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Model__UnorderedGroup_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8630:102: ( ( ( rule__Model__CreatedaoAssignment_1_1 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8631:6: ( ( rule__Model__CreatedaoAssignment_1_1 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getModelAccess().getUnorderedGroup_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8637:6: ( ( rule__Model__CreatedaoAssignment_1_1 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8639:7: ( rule__Model__CreatedaoAssignment_1_1 )
                    {
                     before(grammarAccess.getModelAccess().getCreatedaoAssignment_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8640:7: ( rule__Model__CreatedaoAssignment_1_1 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8640:8: rule__Model__CreatedaoAssignment_1_1
                    {
                    pushFollow(FOLLOW_rule__Model__CreatedaoAssignment_1_1_in_rule__Model__UnorderedGroup_1__Impl17034);
                    rule__Model__CreatedaoAssignment_1_1();

                    state._fsp--;


                    }

                     after(grammarAccess.getModelAccess().getCreatedaoAssignment_1_1()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getModelAccess().getUnorderedGroup_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__UnorderedGroup_1__Impl"


    // $ANTLR start "rule__Model__UnorderedGroup_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8655:1: rule__Model__UnorderedGroup_1__0 : rule__Model__UnorderedGroup_1__Impl ( rule__Model__UnorderedGroup_1__1 )? ;
    public final void rule__Model__UnorderedGroup_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8659:1: ( rule__Model__UnorderedGroup_1__Impl ( rule__Model__UnorderedGroup_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8660:2: rule__Model__UnorderedGroup_1__Impl ( rule__Model__UnorderedGroup_1__1 )?
            {
            pushFollow(FOLLOW_rule__Model__UnorderedGroup_1__Impl_in_rule__Model__UnorderedGroup_1__017093);
            rule__Model__UnorderedGroup_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8661:2: ( rule__Model__UnorderedGroup_1__1 )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( LA20_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 0) ) {
                alt20=1;
            }
            else if ( (LA20_0==32||LA20_0==41) && getUnorderedGroupHelper().canSelect(grammarAccess.getModelAccess().getUnorderedGroup_1(), 1) ) {
                alt20=1;
            }
            switch (alt20) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8661:2: rule__Model__UnorderedGroup_1__1
                    {
                    pushFollow(FOLLOW_rule__Model__UnorderedGroup_1__1_in_rule__Model__UnorderedGroup_1__017096);
                    rule__Model__UnorderedGroup_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__UnorderedGroup_1__0"


    // $ANTLR start "rule__Model__UnorderedGroup_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8668:1: rule__Model__UnorderedGroup_1__1 : rule__Model__UnorderedGroup_1__Impl ;
    public final void rule__Model__UnorderedGroup_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8672:1: ( rule__Model__UnorderedGroup_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8673:2: rule__Model__UnorderedGroup_1__Impl
            {
            pushFollow(FOLLOW_rule__Model__UnorderedGroup_1__Impl_in_rule__Model__UnorderedGroup_1__117121);
            rule__Model__UnorderedGroup_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__UnorderedGroup_1__1"


    // $ANTLR start "rule__Layer__UnorderedGroup_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8684:1: rule__Layer__UnorderedGroup_3 : ( rule__Layer__UnorderedGroup_3__0 )? ;
    public final void rule__Layer__UnorderedGroup_3() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getLayerAccess().getUnorderedGroup_3());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8689:1: ( ( rule__Layer__UnorderedGroup_3__0 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8690:2: ( rule__Layer__UnorderedGroup_3__0 )?
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8690:2: ( rule__Layer__UnorderedGroup_3__0 )?
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( LA21_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 0) ) {
                alt21=1;
            }
            else if ( (LA21_0==32||LA21_0==41) && getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 1) ) {
                alt21=1;
            }
            switch (alt21) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8690:2: rule__Layer__UnorderedGroup_3__0
                    {
                    pushFollow(FOLLOW_rule__Layer__UnorderedGroup_3__0_in_rule__Layer__UnorderedGroup_317149);
                    rule__Layer__UnorderedGroup_3__0();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getLayerAccess().getUnorderedGroup_3());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__UnorderedGroup_3"


    // $ANTLR start "rule__Layer__UnorderedGroup_3__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8700:1: rule__Layer__UnorderedGroup_3__Impl : ( ({...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) ) ) ) ;
    public final void rule__Layer__UnorderedGroup_3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8705:1: ( ( ({...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8706:3: ( ({...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8706:3: ( ({...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) ) ) | ({...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) ) ) )
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( LA22_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 0) ) {
                alt22=1;
            }
            else if ( (LA22_0==32||LA22_0==41) && getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 1) ) {
                alt22=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;
            }
            switch (alt22) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8708:4: ({...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8708:4: ({...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8709:5: {...}? => ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Layer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8709:102: ( ( ( rule__Layer__ConnectionAssignment_3_0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8710:6: ( ( rule__Layer__ConnectionAssignment_3_0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8716:6: ( ( rule__Layer__ConnectionAssignment_3_0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8718:7: ( rule__Layer__ConnectionAssignment_3_0 )
                    {
                     before(grammarAccess.getLayerAccess().getConnectionAssignment_3_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8719:7: ( rule__Layer__ConnectionAssignment_3_0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8719:8: rule__Layer__ConnectionAssignment_3_0
                    {
                    pushFollow(FOLLOW_rule__Layer__ConnectionAssignment_3_0_in_rule__Layer__UnorderedGroup_3__Impl17236);
                    rule__Layer__ConnectionAssignment_3_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getLayerAccess().getConnectionAssignment_3_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8725:4: ({...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8725:4: ({...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8726:5: {...}? => ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Layer__UnorderedGroup_3__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8726:102: ( ( ( rule__Layer__CreatedaoAssignment_3_1 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8727:6: ( ( rule__Layer__CreatedaoAssignment_3_1 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8733:6: ( ( rule__Layer__CreatedaoAssignment_3_1 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8735:7: ( rule__Layer__CreatedaoAssignment_3_1 )
                    {
                     before(grammarAccess.getLayerAccess().getCreatedaoAssignment_3_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8736:7: ( rule__Layer__CreatedaoAssignment_3_1 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8736:8: rule__Layer__CreatedaoAssignment_3_1
                    {
                    pushFollow(FOLLOW_rule__Layer__CreatedaoAssignment_3_1_in_rule__Layer__UnorderedGroup_3__Impl17327);
                    rule__Layer__CreatedaoAssignment_3_1();

                    state._fsp--;


                    }

                     after(grammarAccess.getLayerAccess().getCreatedaoAssignment_3_1()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getLayerAccess().getUnorderedGroup_3());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__UnorderedGroup_3__Impl"


    // $ANTLR start "rule__Layer__UnorderedGroup_3__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8751:1: rule__Layer__UnorderedGroup_3__0 : rule__Layer__UnorderedGroup_3__Impl ( rule__Layer__UnorderedGroup_3__1 )? ;
    public final void rule__Layer__UnorderedGroup_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8755:1: ( rule__Layer__UnorderedGroup_3__Impl ( rule__Layer__UnorderedGroup_3__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8756:2: rule__Layer__UnorderedGroup_3__Impl ( rule__Layer__UnorderedGroup_3__1 )?
            {
            pushFollow(FOLLOW_rule__Layer__UnorderedGroup_3__Impl_in_rule__Layer__UnorderedGroup_3__017386);
            rule__Layer__UnorderedGroup_3__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8757:2: ( rule__Layer__UnorderedGroup_3__1 )?
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( LA23_0 ==20 && getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 0) ) {
                alt23=1;
            }
            else if ( (LA23_0==32||LA23_0==41) && getUnorderedGroupHelper().canSelect(grammarAccess.getLayerAccess().getUnorderedGroup_3(), 1) ) {
                alt23=1;
            }
            switch (alt23) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8757:2: rule__Layer__UnorderedGroup_3__1
                    {
                    pushFollow(FOLLOW_rule__Layer__UnorderedGroup_3__1_in_rule__Layer__UnorderedGroup_3__017389);
                    rule__Layer__UnorderedGroup_3__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__UnorderedGroup_3__0"


    // $ANTLR start "rule__Layer__UnorderedGroup_3__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8764:1: rule__Layer__UnorderedGroup_3__1 : rule__Layer__UnorderedGroup_3__Impl ;
    public final void rule__Layer__UnorderedGroup_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8768:1: ( rule__Layer__UnorderedGroup_3__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8769:2: rule__Layer__UnorderedGroup_3__Impl
            {
            pushFollow(FOLLOW_rule__Layer__UnorderedGroup_3__Impl_in_rule__Layer__UnorderedGroup_3__117414);
            rule__Layer__UnorderedGroup_3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__UnorderedGroup_3__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8780:1: rule__Connection__UnorderedGroup_2_0_1 : rule__Connection__UnorderedGroup_2_0_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_0_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8785:1: ( rule__Connection__UnorderedGroup_2_0_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8786:2: rule__Connection__UnorderedGroup_2_0_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__0_in_rule__Connection__UnorderedGroup_2_0_117442);
            rule__Connection__UnorderedGroup_2_0_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8797:1: rule__Connection__UnorderedGroup_2_0_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_0_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8802:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8803:3: ( ({...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8803:3: ( ({...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) ) ) )
            int alt24=6;
            int LA24_0 = input.LA(1);

            if ( LA24_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) ) {
                int LA24_1 = input.LA(2);

                if ( LA24_1 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) ) {
                    alt24=6;
                }
                else if ( LA24_1 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) ) {
                    alt24=1;
                }
                else if ( LA24_1 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) ) {
                    alt24=4;
                }
                else if ( LA24_1 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) {
                    alt24=3;
                }
                else if ( LA24_1 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) ) {
                    alt24=5;
                }
                else if ( LA24_1 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) ) {
                    alt24=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 24, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 24, 0, input);

                throw nvae;
            }
            switch (alt24) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8805:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8805:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8806:5: {...}? => ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8806:111: ( ( ( rule__Connection__Group_2_0_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8807:6: ( ( rule__Connection__Group_2_0_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8813:6: ( ( rule__Connection__Group_2_0_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8815:7: ( rule__Connection__Group_2_0_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8816:7: ( rule__Connection__Group_2_0_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8816:8: rule__Connection__Group_2_0_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0_1_0__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17531);
                    rule__Connection__Group_2_0_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8822:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8822:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8823:5: {...}? => ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8823:111: ( ( ( rule__Connection__Group_2_0_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8824:6: ( ( rule__Connection__Group_2_0_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8830:6: ( ( rule__Connection__Group_2_0_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8832:7: ( rule__Connection__Group_2_0_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8833:7: ( rule__Connection__Group_2_0_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8833:8: rule__Connection__Group_2_0_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0_1_1__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17622);
                    rule__Connection__Group_2_0_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8839:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8839:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8840:5: {...}? => ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8840:111: ( ( ( rule__Connection__Group_2_0_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8841:6: ( ( rule__Connection__Group_2_0_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8847:6: ( ( rule__Connection__Group_2_0_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8849:7: ( rule__Connection__Group_2_0_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8850:7: ( rule__Connection__Group_2_0_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8850:8: rule__Connection__Group_2_0_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0_1_2__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17713);
                    rule__Connection__Group_2_0_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8856:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8856:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8857:5: {...}? => ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8857:111: ( ( ( rule__Connection__Group_2_0_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8858:6: ( ( rule__Connection__Group_2_0_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8864:6: ( ( rule__Connection__Group_2_0_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8866:7: ( rule__Connection__Group_2_0_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8867:7: ( rule__Connection__Group_2_0_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8867:8: rule__Connection__Group_2_0_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0_1_3__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17804);
                    rule__Connection__Group_2_0_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8873:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8873:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8874:5: {...}? => ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8874:111: ( ( ( rule__Connection__Group_2_0_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8875:6: ( ( rule__Connection__Group_2_0_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8881:6: ( ( rule__Connection__Group_2_0_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8883:7: ( rule__Connection__Group_2_0_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8884:7: ( rule__Connection__Group_2_0_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8884:8: rule__Connection__Group_2_0_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0_1_4__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17895);
                    rule__Connection__Group_2_0_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8890:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8890:4: ({...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8891:5: {...}? => ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_0_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8891:111: ( ( ( rule__Connection__Group_2_0_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8892:6: ( ( rule__Connection__Group_2_0_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8898:6: ( ( rule__Connection__Group_2_0_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8900:7: ( rule__Connection__Group_2_0_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_0_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8901:7: ( rule__Connection__Group_2_0_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8901:8: rule__Connection__Group_2_0_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_0_1_5__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17986);
                    rule__Connection__Group_2_0_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_0_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8916:1: rule__Connection__UnorderedGroup_2_0_1__0 : rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8920:1: ( rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8921:2: rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__018045);
            rule__Connection__UnorderedGroup_2_0_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8922:2: ( rule__Connection__UnorderedGroup_2_0_1__1 )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( LA25_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8922:2: rule__Connection__UnorderedGroup_2_0_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__1_in_rule__Connection__UnorderedGroup_2_0_1__018048);
                    rule__Connection__UnorderedGroup_2_0_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8929:1: rule__Connection__UnorderedGroup_2_0_1__1 : rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8933:1: ( rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8934:2: rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__118073);
            rule__Connection__UnorderedGroup_2_0_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8935:2: ( rule__Connection__UnorderedGroup_2_0_1__2 )?
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( LA26_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) ) {
                alt26=1;
            }
            switch (alt26) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8935:2: rule__Connection__UnorderedGroup_2_0_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__2_in_rule__Connection__UnorderedGroup_2_0_1__118076);
                    rule__Connection__UnorderedGroup_2_0_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8942:1: rule__Connection__UnorderedGroup_2_0_1__2 : rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_0_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8946:1: ( rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8947:2: rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__218101);
            rule__Connection__UnorderedGroup_2_0_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8948:2: ( rule__Connection__UnorderedGroup_2_0_1__3 )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( LA27_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8948:2: rule__Connection__UnorderedGroup_2_0_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__3_in_rule__Connection__UnorderedGroup_2_0_1__218104);
                    rule__Connection__UnorderedGroup_2_0_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8955:1: rule__Connection__UnorderedGroup_2_0_1__3 : rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_0_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8959:1: ( rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8960:2: rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__318129);
            rule__Connection__UnorderedGroup_2_0_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8961:2: ( rule__Connection__UnorderedGroup_2_0_1__4 )?
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( LA28_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) ) {
                alt28=1;
            }
            switch (alt28) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8961:2: rule__Connection__UnorderedGroup_2_0_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__4_in_rule__Connection__UnorderedGroup_2_0_1__318132);
                    rule__Connection__UnorderedGroup_2_0_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8968:1: rule__Connection__UnorderedGroup_2_0_1__4 : rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_0_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8972:1: ( rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8973:2: rule__Connection__UnorderedGroup_2_0_1__Impl ( rule__Connection__UnorderedGroup_2_0_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__418157);
            rule__Connection__UnorderedGroup_2_0_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8974:2: ( rule__Connection__UnorderedGroup_2_0_1__5 )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( LA29_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_0_1(), 2) ) ) {
                alt29=1;
            }
            switch (alt29) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8974:2: rule__Connection__UnorderedGroup_2_0_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__5_in_rule__Connection__UnorderedGroup_2_0_1__418160);
                    rule__Connection__UnorderedGroup_2_0_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_0_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8981:1: rule__Connection__UnorderedGroup_2_0_1__5 : rule__Connection__UnorderedGroup_2_0_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_0_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8985:1: ( rule__Connection__UnorderedGroup_2_0_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:8986:2: rule__Connection__UnorderedGroup_2_0_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__518185);
            rule__Connection__UnorderedGroup_2_0_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_0_1__5"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9005:1: rule__Connection__UnorderedGroup_2_1_1 : rule__Connection__UnorderedGroup_2_1_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_1_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9010:1: ( rule__Connection__UnorderedGroup_2_1_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9011:2: rule__Connection__UnorderedGroup_2_1_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__0_in_rule__Connection__UnorderedGroup_2_1_118221);
            rule__Connection__UnorderedGroup_2_1_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9022:1: rule__Connection__UnorderedGroup_2_1_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_1_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9027:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9028:3: ( ({...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9028:3: ( ({...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) ) ) )
            int alt30=6;
            int LA30_0 = input.LA(1);

            if ( LA30_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) ) {
                int LA30_1 = input.LA(2);

                if ( LA30_1 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) ) {
                    alt30=1;
                }
                else if ( LA30_1 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) ) {
                    alt30=2;
                }
                else if ( LA30_1 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) ) {
                    alt30=4;
                }
                else if ( LA30_1 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) {
                    alt30=3;
                }
                else if ( LA30_1 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) ) {
                    alt30=6;
                }
                else if ( LA30_1 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) ) {
                    alt30=5;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 30, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 30, 0, input);

                throw nvae;
            }
            switch (alt30) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9030:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9030:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9031:5: {...}? => ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9031:111: ( ( ( rule__Connection__Group_2_1_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9032:6: ( ( rule__Connection__Group_2_1_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9038:6: ( ( rule__Connection__Group_2_1_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9040:7: ( rule__Connection__Group_2_1_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9041:7: ( rule__Connection__Group_2_1_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9041:8: rule__Connection__Group_2_1_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1_1_0__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18310);
                    rule__Connection__Group_2_1_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9047:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9047:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9048:5: {...}? => ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9048:111: ( ( ( rule__Connection__Group_2_1_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9049:6: ( ( rule__Connection__Group_2_1_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9055:6: ( ( rule__Connection__Group_2_1_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9057:7: ( rule__Connection__Group_2_1_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9058:7: ( rule__Connection__Group_2_1_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9058:8: rule__Connection__Group_2_1_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1_1_1__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18401);
                    rule__Connection__Group_2_1_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9064:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9064:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9065:5: {...}? => ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9065:111: ( ( ( rule__Connection__Group_2_1_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9066:6: ( ( rule__Connection__Group_2_1_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9072:6: ( ( rule__Connection__Group_2_1_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9074:7: ( rule__Connection__Group_2_1_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9075:7: ( rule__Connection__Group_2_1_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9075:8: rule__Connection__Group_2_1_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1_1_2__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18492);
                    rule__Connection__Group_2_1_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9081:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9081:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9082:5: {...}? => ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9082:111: ( ( ( rule__Connection__Group_2_1_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9083:6: ( ( rule__Connection__Group_2_1_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9089:6: ( ( rule__Connection__Group_2_1_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9091:7: ( rule__Connection__Group_2_1_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9092:7: ( rule__Connection__Group_2_1_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9092:8: rule__Connection__Group_2_1_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1_1_3__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18583);
                    rule__Connection__Group_2_1_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9098:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9098:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9099:5: {...}? => ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9099:111: ( ( ( rule__Connection__Group_2_1_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9100:6: ( ( rule__Connection__Group_2_1_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9106:6: ( ( rule__Connection__Group_2_1_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9108:7: ( rule__Connection__Group_2_1_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9109:7: ( rule__Connection__Group_2_1_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9109:8: rule__Connection__Group_2_1_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1_1_4__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18674);
                    rule__Connection__Group_2_1_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9115:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9115:4: ({...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9116:5: {...}? => ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_1_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9116:111: ( ( ( rule__Connection__Group_2_1_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9117:6: ( ( rule__Connection__Group_2_1_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9123:6: ( ( rule__Connection__Group_2_1_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9125:7: ( rule__Connection__Group_2_1_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_1_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9126:7: ( rule__Connection__Group_2_1_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9126:8: rule__Connection__Group_2_1_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_1_1_5__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18765);
                    rule__Connection__Group_2_1_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_1_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9141:1: rule__Connection__UnorderedGroup_2_1_1__0 : rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_1_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9145:1: ( rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9146:2: rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__018824);
            rule__Connection__UnorderedGroup_2_1_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9147:2: ( rule__Connection__UnorderedGroup_2_1_1__1 )?
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( LA31_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) ) {
                alt31=1;
            }
            switch (alt31) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9147:2: rule__Connection__UnorderedGroup_2_1_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__1_in_rule__Connection__UnorderedGroup_2_1_1__018827);
                    rule__Connection__UnorderedGroup_2_1_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9154:1: rule__Connection__UnorderedGroup_2_1_1__1 : rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_1_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9158:1: ( rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9159:2: rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__118852);
            rule__Connection__UnorderedGroup_2_1_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9160:2: ( rule__Connection__UnorderedGroup_2_1_1__2 )?
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( LA32_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) ) {
                alt32=1;
            }
            switch (alt32) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9160:2: rule__Connection__UnorderedGroup_2_1_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__2_in_rule__Connection__UnorderedGroup_2_1_1__118855);
                    rule__Connection__UnorderedGroup_2_1_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9167:1: rule__Connection__UnorderedGroup_2_1_1__2 : rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_1_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9171:1: ( rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9172:2: rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__218880);
            rule__Connection__UnorderedGroup_2_1_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9173:2: ( rule__Connection__UnorderedGroup_2_1_1__3 )?
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( LA33_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) ) {
                alt33=1;
            }
            switch (alt33) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9173:2: rule__Connection__UnorderedGroup_2_1_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__3_in_rule__Connection__UnorderedGroup_2_1_1__218883);
                    rule__Connection__UnorderedGroup_2_1_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9180:1: rule__Connection__UnorderedGroup_2_1_1__3 : rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_1_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9184:1: ( rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9185:2: rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__318908);
            rule__Connection__UnorderedGroup_2_1_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9186:2: ( rule__Connection__UnorderedGroup_2_1_1__4 )?
            int alt34=2;
            int LA34_0 = input.LA(1);

            if ( LA34_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) ) {
                alt34=1;
            }
            switch (alt34) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9186:2: rule__Connection__UnorderedGroup_2_1_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__4_in_rule__Connection__UnorderedGroup_2_1_1__318911);
                    rule__Connection__UnorderedGroup_2_1_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9193:1: rule__Connection__UnorderedGroup_2_1_1__4 : rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_1_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9197:1: ( rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9198:2: rule__Connection__UnorderedGroup_2_1_1__Impl ( rule__Connection__UnorderedGroup_2_1_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__418936);
            rule__Connection__UnorderedGroup_2_1_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9199:2: ( rule__Connection__UnorderedGroup_2_1_1__5 )?
            int alt35=2;
            int LA35_0 = input.LA(1);

            if ( LA35_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_1_1(), 2) ) ) {
                alt35=1;
            }
            switch (alt35) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9199:2: rule__Connection__UnorderedGroup_2_1_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__5_in_rule__Connection__UnorderedGroup_2_1_1__418939);
                    rule__Connection__UnorderedGroup_2_1_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_1_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9206:1: rule__Connection__UnorderedGroup_2_1_1__5 : rule__Connection__UnorderedGroup_2_1_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_1_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9210:1: ( rule__Connection__UnorderedGroup_2_1_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9211:2: rule__Connection__UnorderedGroup_2_1_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__518964);
            rule__Connection__UnorderedGroup_2_1_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_1_1__5"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9230:1: rule__Connection__UnorderedGroup_2_2_1 : rule__Connection__UnorderedGroup_2_2_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_2_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9235:1: ( rule__Connection__UnorderedGroup_2_2_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9236:2: rule__Connection__UnorderedGroup_2_2_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__0_in_rule__Connection__UnorderedGroup_2_2_119000);
            rule__Connection__UnorderedGroup_2_2_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9247:1: rule__Connection__UnorderedGroup_2_2_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_2_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9252:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9253:3: ( ({...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9253:3: ( ({...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) ) ) )
            int alt36=6;
            int LA36_0 = input.LA(1);

            if ( LA36_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) ) {
                int LA36_1 = input.LA(2);

                if ( LA36_1 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) ) {
                    alt36=1;
                }
                else if ( LA36_1 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) ) {
                    alt36=3;
                }
                else if ( LA36_1 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) ) {
                    alt36=2;
                }
                else if ( LA36_1 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) {
                    alt36=4;
                }
                else if ( LA36_1 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) ) {
                    alt36=6;
                }
                else if ( LA36_1 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) ) {
                    alt36=5;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 36, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 36, 0, input);

                throw nvae;
            }
            switch (alt36) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9255:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9255:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9256:5: {...}? => ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9256:111: ( ( ( rule__Connection__Group_2_2_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9257:6: ( ( rule__Connection__Group_2_2_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9263:6: ( ( rule__Connection__Group_2_2_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9265:7: ( rule__Connection__Group_2_2_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9266:7: ( rule__Connection__Group_2_2_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9266:8: rule__Connection__Group_2_2_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2_1_0__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19089);
                    rule__Connection__Group_2_2_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9272:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9272:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9273:5: {...}? => ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9273:111: ( ( ( rule__Connection__Group_2_2_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9274:6: ( ( rule__Connection__Group_2_2_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9280:6: ( ( rule__Connection__Group_2_2_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9282:7: ( rule__Connection__Group_2_2_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9283:7: ( rule__Connection__Group_2_2_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9283:8: rule__Connection__Group_2_2_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2_1_1__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19180);
                    rule__Connection__Group_2_2_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9289:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9289:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9290:5: {...}? => ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9290:111: ( ( ( rule__Connection__Group_2_2_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9291:6: ( ( rule__Connection__Group_2_2_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9297:6: ( ( rule__Connection__Group_2_2_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9299:7: ( rule__Connection__Group_2_2_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9300:7: ( rule__Connection__Group_2_2_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9300:8: rule__Connection__Group_2_2_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2_1_2__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19271);
                    rule__Connection__Group_2_2_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9306:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9306:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9307:5: {...}? => ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9307:111: ( ( ( rule__Connection__Group_2_2_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9308:6: ( ( rule__Connection__Group_2_2_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9314:6: ( ( rule__Connection__Group_2_2_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9316:7: ( rule__Connection__Group_2_2_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9317:7: ( rule__Connection__Group_2_2_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9317:8: rule__Connection__Group_2_2_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2_1_3__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19362);
                    rule__Connection__Group_2_2_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9323:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9323:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9324:5: {...}? => ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9324:111: ( ( ( rule__Connection__Group_2_2_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9325:6: ( ( rule__Connection__Group_2_2_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9331:6: ( ( rule__Connection__Group_2_2_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9333:7: ( rule__Connection__Group_2_2_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9334:7: ( rule__Connection__Group_2_2_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9334:8: rule__Connection__Group_2_2_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2_1_4__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19453);
                    rule__Connection__Group_2_2_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9340:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9340:4: ({...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9341:5: {...}? => ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_2_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9341:111: ( ( ( rule__Connection__Group_2_2_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9342:6: ( ( rule__Connection__Group_2_2_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9348:6: ( ( rule__Connection__Group_2_2_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9350:7: ( rule__Connection__Group_2_2_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_2_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9351:7: ( rule__Connection__Group_2_2_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9351:8: rule__Connection__Group_2_2_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_2_1_5__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19544);
                    rule__Connection__Group_2_2_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_2_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9366:1: rule__Connection__UnorderedGroup_2_2_1__0 : rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_2_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9370:1: ( rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9371:2: rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__019603);
            rule__Connection__UnorderedGroup_2_2_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9372:2: ( rule__Connection__UnorderedGroup_2_2_1__1 )?
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( LA37_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) ) {
                alt37=1;
            }
            switch (alt37) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9372:2: rule__Connection__UnorderedGroup_2_2_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__1_in_rule__Connection__UnorderedGroup_2_2_1__019606);
                    rule__Connection__UnorderedGroup_2_2_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9379:1: rule__Connection__UnorderedGroup_2_2_1__1 : rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_2_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9383:1: ( rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9384:2: rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__119631);
            rule__Connection__UnorderedGroup_2_2_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9385:2: ( rule__Connection__UnorderedGroup_2_2_1__2 )?
            int alt38=2;
            int LA38_0 = input.LA(1);

            if ( LA38_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) ) {
                alt38=1;
            }
            switch (alt38) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9385:2: rule__Connection__UnorderedGroup_2_2_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__2_in_rule__Connection__UnorderedGroup_2_2_1__119634);
                    rule__Connection__UnorderedGroup_2_2_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9392:1: rule__Connection__UnorderedGroup_2_2_1__2 : rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_2_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9396:1: ( rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9397:2: rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__219659);
            rule__Connection__UnorderedGroup_2_2_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9398:2: ( rule__Connection__UnorderedGroup_2_2_1__3 )?
            int alt39=2;
            int LA39_0 = input.LA(1);

            if ( LA39_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) ) {
                alt39=1;
            }
            switch (alt39) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9398:2: rule__Connection__UnorderedGroup_2_2_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__3_in_rule__Connection__UnorderedGroup_2_2_1__219662);
                    rule__Connection__UnorderedGroup_2_2_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9405:1: rule__Connection__UnorderedGroup_2_2_1__3 : rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_2_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9409:1: ( rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9410:2: rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__319687);
            rule__Connection__UnorderedGroup_2_2_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9411:2: ( rule__Connection__UnorderedGroup_2_2_1__4 )?
            int alt40=2;
            int LA40_0 = input.LA(1);

            if ( LA40_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) ) {
                alt40=1;
            }
            switch (alt40) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9411:2: rule__Connection__UnorderedGroup_2_2_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__4_in_rule__Connection__UnorderedGroup_2_2_1__319690);
                    rule__Connection__UnorderedGroup_2_2_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9418:1: rule__Connection__UnorderedGroup_2_2_1__4 : rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_2_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9422:1: ( rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9423:2: rule__Connection__UnorderedGroup_2_2_1__Impl ( rule__Connection__UnorderedGroup_2_2_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__419715);
            rule__Connection__UnorderedGroup_2_2_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9424:2: ( rule__Connection__UnorderedGroup_2_2_1__5 )?
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( LA41_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_2_1(), 3) ) ) {
                alt41=1;
            }
            switch (alt41) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9424:2: rule__Connection__UnorderedGroup_2_2_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__5_in_rule__Connection__UnorderedGroup_2_2_1__419718);
                    rule__Connection__UnorderedGroup_2_2_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_2_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9431:1: rule__Connection__UnorderedGroup_2_2_1__5 : rule__Connection__UnorderedGroup_2_2_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_2_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9435:1: ( rule__Connection__UnorderedGroup_2_2_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9436:2: rule__Connection__UnorderedGroup_2_2_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__519743);
            rule__Connection__UnorderedGroup_2_2_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_2_1__5"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9455:1: rule__Connection__UnorderedGroup_2_3_1 : rule__Connection__UnorderedGroup_2_3_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_3_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9460:1: ( rule__Connection__UnorderedGroup_2_3_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9461:2: rule__Connection__UnorderedGroup_2_3_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__0_in_rule__Connection__UnorderedGroup_2_3_119779);
            rule__Connection__UnorderedGroup_2_3_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9472:1: rule__Connection__UnorderedGroup_2_3_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_3_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9477:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9478:3: ( ({...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9478:3: ( ({...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) ) ) )
            int alt42=6;
            int LA42_0 = input.LA(1);

            if ( LA42_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) ) {
                int LA42_1 = input.LA(2);

                if ( LA42_1 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) ) {
                    alt42=4;
                }
                else if ( LA42_1 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) {
                    alt42=3;
                }
                else if ( LA42_1 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) ) {
                    alt42=2;
                }
                else if ( LA42_1 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) ) {
                    alt42=1;
                }
                else if ( LA42_1 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) ) {
                    alt42=6;
                }
                else if ( LA42_1 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) ) {
                    alt42=5;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 42, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 42, 0, input);

                throw nvae;
            }
            switch (alt42) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9480:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9480:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9481:5: {...}? => ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9481:111: ( ( ( rule__Connection__Group_2_3_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9482:6: ( ( rule__Connection__Group_2_3_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9488:6: ( ( rule__Connection__Group_2_3_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9490:7: ( rule__Connection__Group_2_3_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9491:7: ( rule__Connection__Group_2_3_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9491:8: rule__Connection__Group_2_3_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3_1_0__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl19868);
                    rule__Connection__Group_2_3_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9497:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9497:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9498:5: {...}? => ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9498:111: ( ( ( rule__Connection__Group_2_3_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9499:6: ( ( rule__Connection__Group_2_3_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9505:6: ( ( rule__Connection__Group_2_3_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9507:7: ( rule__Connection__Group_2_3_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9508:7: ( rule__Connection__Group_2_3_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9508:8: rule__Connection__Group_2_3_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3_1_1__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl19959);
                    rule__Connection__Group_2_3_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9514:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9514:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9515:5: {...}? => ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9515:111: ( ( ( rule__Connection__Group_2_3_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9516:6: ( ( rule__Connection__Group_2_3_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9522:6: ( ( rule__Connection__Group_2_3_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9524:7: ( rule__Connection__Group_2_3_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9525:7: ( rule__Connection__Group_2_3_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9525:8: rule__Connection__Group_2_3_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3_1_2__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20050);
                    rule__Connection__Group_2_3_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9531:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9531:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9532:5: {...}? => ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9532:111: ( ( ( rule__Connection__Group_2_3_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9533:6: ( ( rule__Connection__Group_2_3_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9539:6: ( ( rule__Connection__Group_2_3_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9541:7: ( rule__Connection__Group_2_3_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9542:7: ( rule__Connection__Group_2_3_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9542:8: rule__Connection__Group_2_3_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3_1_3__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20141);
                    rule__Connection__Group_2_3_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9548:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9548:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9549:5: {...}? => ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9549:111: ( ( ( rule__Connection__Group_2_3_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9550:6: ( ( rule__Connection__Group_2_3_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9556:6: ( ( rule__Connection__Group_2_3_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9558:7: ( rule__Connection__Group_2_3_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9559:7: ( rule__Connection__Group_2_3_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9559:8: rule__Connection__Group_2_3_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3_1_4__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20232);
                    rule__Connection__Group_2_3_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9565:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9565:4: ({...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9566:5: {...}? => ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_3_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9566:111: ( ( ( rule__Connection__Group_2_3_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9567:6: ( ( rule__Connection__Group_2_3_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9573:6: ( ( rule__Connection__Group_2_3_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9575:7: ( rule__Connection__Group_2_3_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_3_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9576:7: ( rule__Connection__Group_2_3_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9576:8: rule__Connection__Group_2_3_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_3_1_5__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20323);
                    rule__Connection__Group_2_3_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_3_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9591:1: rule__Connection__UnorderedGroup_2_3_1__0 : rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9595:1: ( rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9596:2: rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__020382);
            rule__Connection__UnorderedGroup_2_3_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9597:2: ( rule__Connection__UnorderedGroup_2_3_1__1 )?
            int alt43=2;
            int LA43_0 = input.LA(1);

            if ( LA43_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) ) {
                alt43=1;
            }
            switch (alt43) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9597:2: rule__Connection__UnorderedGroup_2_3_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__1_in_rule__Connection__UnorderedGroup_2_3_1__020385);
                    rule__Connection__UnorderedGroup_2_3_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9604:1: rule__Connection__UnorderedGroup_2_3_1__1 : rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9608:1: ( rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9609:2: rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__120410);
            rule__Connection__UnorderedGroup_2_3_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9610:2: ( rule__Connection__UnorderedGroup_2_3_1__2 )?
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( LA44_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) ) {
                alt44=1;
            }
            switch (alt44) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9610:2: rule__Connection__UnorderedGroup_2_3_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__2_in_rule__Connection__UnorderedGroup_2_3_1__120413);
                    rule__Connection__UnorderedGroup_2_3_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9617:1: rule__Connection__UnorderedGroup_2_3_1__2 : rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_3_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9621:1: ( rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9622:2: rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__220438);
            rule__Connection__UnorderedGroup_2_3_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9623:2: ( rule__Connection__UnorderedGroup_2_3_1__3 )?
            int alt45=2;
            int LA45_0 = input.LA(1);

            if ( LA45_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) ) {
                alt45=1;
            }
            switch (alt45) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9623:2: rule__Connection__UnorderedGroup_2_3_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__3_in_rule__Connection__UnorderedGroup_2_3_1__220441);
                    rule__Connection__UnorderedGroup_2_3_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9630:1: rule__Connection__UnorderedGroup_2_3_1__3 : rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_3_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9634:1: ( rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9635:2: rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__320466);
            rule__Connection__UnorderedGroup_2_3_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9636:2: ( rule__Connection__UnorderedGroup_2_3_1__4 )?
            int alt46=2;
            int LA46_0 = input.LA(1);

            if ( LA46_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) ) {
                alt46=1;
            }
            switch (alt46) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9636:2: rule__Connection__UnorderedGroup_2_3_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__4_in_rule__Connection__UnorderedGroup_2_3_1__320469);
                    rule__Connection__UnorderedGroup_2_3_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9643:1: rule__Connection__UnorderedGroup_2_3_1__4 : rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_3_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9647:1: ( rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9648:2: rule__Connection__UnorderedGroup_2_3_1__Impl ( rule__Connection__UnorderedGroup_2_3_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__420494);
            rule__Connection__UnorderedGroup_2_3_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9649:2: ( rule__Connection__UnorderedGroup_2_3_1__5 )?
            int alt47=2;
            int LA47_0 = input.LA(1);

            if ( LA47_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_3_1(), 2) ) ) {
                alt47=1;
            }
            switch (alt47) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9649:2: rule__Connection__UnorderedGroup_2_3_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__5_in_rule__Connection__UnorderedGroup_2_3_1__420497);
                    rule__Connection__UnorderedGroup_2_3_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_3_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9656:1: rule__Connection__UnorderedGroup_2_3_1__5 : rule__Connection__UnorderedGroup_2_3_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_3_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9660:1: ( rule__Connection__UnorderedGroup_2_3_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9661:2: rule__Connection__UnorderedGroup_2_3_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__520522);
            rule__Connection__UnorderedGroup_2_3_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_3_1__5"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9680:1: rule__Connection__UnorderedGroup_2_4_1 : rule__Connection__UnorderedGroup_2_4_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_4_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9685:1: ( rule__Connection__UnorderedGroup_2_4_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9686:2: rule__Connection__UnorderedGroup_2_4_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__0_in_rule__Connection__UnorderedGroup_2_4_120558);
            rule__Connection__UnorderedGroup_2_4_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9697:1: rule__Connection__UnorderedGroup_2_4_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_4_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9702:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9703:3: ( ({...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9703:3: ( ({...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) ) ) )
            int alt48=6;
            int LA48_0 = input.LA(1);

            if ( LA48_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) ) {
                int LA48_1 = input.LA(2);

                if ( LA48_1 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) ) {
                    alt48=5;
                }
                else if ( LA48_1 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) ) {
                    alt48=4;
                }
                else if ( LA48_1 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) ) {
                    alt48=3;
                }
                else if ( LA48_1 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) {
                    alt48=2;
                }
                else if ( LA48_1 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) ) {
                    alt48=6;
                }
                else if ( LA48_1 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) ) {
                    alt48=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 48, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 48, 0, input);

                throw nvae;
            }
            switch (alt48) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9705:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9705:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9706:5: {...}? => ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9706:111: ( ( ( rule__Connection__Group_2_4_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9707:6: ( ( rule__Connection__Group_2_4_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9713:6: ( ( rule__Connection__Group_2_4_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9715:7: ( rule__Connection__Group_2_4_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9716:7: ( rule__Connection__Group_2_4_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9716:8: rule__Connection__Group_2_4_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4_1_0__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20647);
                    rule__Connection__Group_2_4_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9722:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9722:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9723:5: {...}? => ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9723:111: ( ( ( rule__Connection__Group_2_4_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9724:6: ( ( rule__Connection__Group_2_4_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9730:6: ( ( rule__Connection__Group_2_4_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9732:7: ( rule__Connection__Group_2_4_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9733:7: ( rule__Connection__Group_2_4_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9733:8: rule__Connection__Group_2_4_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4_1_1__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20738);
                    rule__Connection__Group_2_4_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9739:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9739:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9740:5: {...}? => ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9740:111: ( ( ( rule__Connection__Group_2_4_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9741:6: ( ( rule__Connection__Group_2_4_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9747:6: ( ( rule__Connection__Group_2_4_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9749:7: ( rule__Connection__Group_2_4_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9750:7: ( rule__Connection__Group_2_4_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9750:8: rule__Connection__Group_2_4_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4_1_2__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20829);
                    rule__Connection__Group_2_4_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9756:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9756:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9757:5: {...}? => ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9757:111: ( ( ( rule__Connection__Group_2_4_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9758:6: ( ( rule__Connection__Group_2_4_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9764:6: ( ( rule__Connection__Group_2_4_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9766:7: ( rule__Connection__Group_2_4_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9767:7: ( rule__Connection__Group_2_4_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9767:8: rule__Connection__Group_2_4_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4_1_3__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20920);
                    rule__Connection__Group_2_4_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9773:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9773:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9774:5: {...}? => ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9774:111: ( ( ( rule__Connection__Group_2_4_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9775:6: ( ( rule__Connection__Group_2_4_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9781:6: ( ( rule__Connection__Group_2_4_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9783:7: ( rule__Connection__Group_2_4_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9784:7: ( rule__Connection__Group_2_4_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9784:8: rule__Connection__Group_2_4_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4_1_4__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl21011);
                    rule__Connection__Group_2_4_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9790:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9790:4: ({...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9791:5: {...}? => ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_4_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9791:111: ( ( ( rule__Connection__Group_2_4_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9792:6: ( ( rule__Connection__Group_2_4_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9798:6: ( ( rule__Connection__Group_2_4_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9800:7: ( rule__Connection__Group_2_4_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_4_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9801:7: ( rule__Connection__Group_2_4_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9801:8: rule__Connection__Group_2_4_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_4_1_5__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl21102);
                    rule__Connection__Group_2_4_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_4_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9816:1: rule__Connection__UnorderedGroup_2_4_1__0 : rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9820:1: ( rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9821:2: rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__021161);
            rule__Connection__UnorderedGroup_2_4_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9822:2: ( rule__Connection__UnorderedGroup_2_4_1__1 )?
            int alt49=2;
            int LA49_0 = input.LA(1);

            if ( LA49_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) ) {
                alt49=1;
            }
            switch (alt49) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9822:2: rule__Connection__UnorderedGroup_2_4_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__1_in_rule__Connection__UnorderedGroup_2_4_1__021164);
                    rule__Connection__UnorderedGroup_2_4_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9829:1: rule__Connection__UnorderedGroup_2_4_1__1 : rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9833:1: ( rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9834:2: rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__121189);
            rule__Connection__UnorderedGroup_2_4_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9835:2: ( rule__Connection__UnorderedGroup_2_4_1__2 )?
            int alt50=2;
            int LA50_0 = input.LA(1);

            if ( LA50_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) ) {
                alt50=1;
            }
            switch (alt50) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9835:2: rule__Connection__UnorderedGroup_2_4_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__2_in_rule__Connection__UnorderedGroup_2_4_1__121192);
                    rule__Connection__UnorderedGroup_2_4_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9842:1: rule__Connection__UnorderedGroup_2_4_1__2 : rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_4_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9846:1: ( rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9847:2: rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__221217);
            rule__Connection__UnorderedGroup_2_4_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9848:2: ( rule__Connection__UnorderedGroup_2_4_1__3 )?
            int alt51=2;
            int LA51_0 = input.LA(1);

            if ( LA51_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) ) {
                alt51=1;
            }
            switch (alt51) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9848:2: rule__Connection__UnorderedGroup_2_4_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__3_in_rule__Connection__UnorderedGroup_2_4_1__221220);
                    rule__Connection__UnorderedGroup_2_4_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9855:1: rule__Connection__UnorderedGroup_2_4_1__3 : rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_4_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9859:1: ( rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9860:2: rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__321245);
            rule__Connection__UnorderedGroup_2_4_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9861:2: ( rule__Connection__UnorderedGroup_2_4_1__4 )?
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( LA52_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) ) {
                alt52=1;
            }
            switch (alt52) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9861:2: rule__Connection__UnorderedGroup_2_4_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__4_in_rule__Connection__UnorderedGroup_2_4_1__321248);
                    rule__Connection__UnorderedGroup_2_4_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9868:1: rule__Connection__UnorderedGroup_2_4_1__4 : rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_4_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9872:1: ( rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9873:2: rule__Connection__UnorderedGroup_2_4_1__Impl ( rule__Connection__UnorderedGroup_2_4_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__421273);
            rule__Connection__UnorderedGroup_2_4_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9874:2: ( rule__Connection__UnorderedGroup_2_4_1__5 )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( LA53_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_4_1(), 1) ) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9874:2: rule__Connection__UnorderedGroup_2_4_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__5_in_rule__Connection__UnorderedGroup_2_4_1__421276);
                    rule__Connection__UnorderedGroup_2_4_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_4_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9881:1: rule__Connection__UnorderedGroup_2_4_1__5 : rule__Connection__UnorderedGroup_2_4_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_4_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9885:1: ( rule__Connection__UnorderedGroup_2_4_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9886:2: rule__Connection__UnorderedGroup_2_4_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__521301);
            rule__Connection__UnorderedGroup_2_4_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_4_1__5"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9905:1: rule__Connection__UnorderedGroup_2_5_1 : rule__Connection__UnorderedGroup_2_5_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_5_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9910:1: ( rule__Connection__UnorderedGroup_2_5_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9911:2: rule__Connection__UnorderedGroup_2_5_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__0_in_rule__Connection__UnorderedGroup_2_5_121337);
            rule__Connection__UnorderedGroup_2_5_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9922:1: rule__Connection__UnorderedGroup_2_5_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_5_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9927:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9928:3: ( ({...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9928:3: ( ({...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) ) ) )
            int alt54=6;
            int LA54_0 = input.LA(1);

            if ( LA54_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) ) {
                int LA54_1 = input.LA(2);

                if ( LA54_1 ==31 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) ) {
                    alt54=6;
                }
                else if ( LA54_1 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) ) {
                    alt54=5;
                }
                else if ( LA54_1 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) ) {
                    alt54=4;
                }
                else if ( LA54_1 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) ) {
                    alt54=3;
                }
                else if ( LA54_1 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) {
                    alt54=2;
                }
                else if ( LA54_1 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) ) {
                    alt54=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 54, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 54, 0, input);

                throw nvae;
            }
            switch (alt54) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9930:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9930:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9931:5: {...}? => ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9931:111: ( ( ( rule__Connection__Group_2_5_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9932:6: ( ( rule__Connection__Group_2_5_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9938:6: ( ( rule__Connection__Group_2_5_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9940:7: ( rule__Connection__Group_2_5_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9941:7: ( rule__Connection__Group_2_5_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9941:8: rule__Connection__Group_2_5_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5_1_0__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21426);
                    rule__Connection__Group_2_5_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9947:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9947:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9948:5: {...}? => ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9948:111: ( ( ( rule__Connection__Group_2_5_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9949:6: ( ( rule__Connection__Group_2_5_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9955:6: ( ( rule__Connection__Group_2_5_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9957:7: ( rule__Connection__Group_2_5_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9958:7: ( rule__Connection__Group_2_5_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9958:8: rule__Connection__Group_2_5_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5_1_1__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21517);
                    rule__Connection__Group_2_5_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9964:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9964:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9965:5: {...}? => ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9965:111: ( ( ( rule__Connection__Group_2_5_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9966:6: ( ( rule__Connection__Group_2_5_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9972:6: ( ( rule__Connection__Group_2_5_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9974:7: ( rule__Connection__Group_2_5_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9975:7: ( rule__Connection__Group_2_5_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9975:8: rule__Connection__Group_2_5_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5_1_2__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21608);
                    rule__Connection__Group_2_5_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9981:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9981:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9982:5: {...}? => ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9982:111: ( ( ( rule__Connection__Group_2_5_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9983:6: ( ( rule__Connection__Group_2_5_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9989:6: ( ( rule__Connection__Group_2_5_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9991:7: ( rule__Connection__Group_2_5_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9992:7: ( rule__Connection__Group_2_5_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9992:8: rule__Connection__Group_2_5_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5_1_3__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21699);
                    rule__Connection__Group_2_5_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9998:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9998:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9999:5: {...}? => ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:9999:111: ( ( ( rule__Connection__Group_2_5_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10000:6: ( ( rule__Connection__Group_2_5_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10006:6: ( ( rule__Connection__Group_2_5_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10008:7: ( rule__Connection__Group_2_5_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10009:7: ( rule__Connection__Group_2_5_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10009:8: rule__Connection__Group_2_5_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5_1_4__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21790);
                    rule__Connection__Group_2_5_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10015:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10015:4: ({...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10016:5: {...}? => ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_5_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10016:111: ( ( ( rule__Connection__Group_2_5_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10017:6: ( ( rule__Connection__Group_2_5_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10023:6: ( ( rule__Connection__Group_2_5_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10025:7: ( rule__Connection__Group_2_5_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_5_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10026:7: ( rule__Connection__Group_2_5_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10026:8: rule__Connection__Group_2_5_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_5_1_5__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21881);
                    rule__Connection__Group_2_5_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_5_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10041:1: rule__Connection__UnorderedGroup_2_5_1__0 : rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_5_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10045:1: ( rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10046:2: rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__021940);
            rule__Connection__UnorderedGroup_2_5_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10047:2: ( rule__Connection__UnorderedGroup_2_5_1__1 )?
            int alt55=2;
            int LA55_0 = input.LA(1);

            if ( LA55_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) ) {
                alt55=1;
            }
            switch (alt55) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10047:2: rule__Connection__UnorderedGroup_2_5_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__1_in_rule__Connection__UnorderedGroup_2_5_1__021943);
                    rule__Connection__UnorderedGroup_2_5_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10054:1: rule__Connection__UnorderedGroup_2_5_1__1 : rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_5_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10058:1: ( rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10059:2: rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__121968);
            rule__Connection__UnorderedGroup_2_5_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10060:2: ( rule__Connection__UnorderedGroup_2_5_1__2 )?
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( LA56_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) ) {
                alt56=1;
            }
            switch (alt56) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10060:2: rule__Connection__UnorderedGroup_2_5_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__2_in_rule__Connection__UnorderedGroup_2_5_1__121971);
                    rule__Connection__UnorderedGroup_2_5_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10067:1: rule__Connection__UnorderedGroup_2_5_1__2 : rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_5_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10071:1: ( rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10072:2: rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__221996);
            rule__Connection__UnorderedGroup_2_5_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10073:2: ( rule__Connection__UnorderedGroup_2_5_1__3 )?
            int alt57=2;
            int LA57_0 = input.LA(1);

            if ( LA57_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) ) {
                alt57=1;
            }
            switch (alt57) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10073:2: rule__Connection__UnorderedGroup_2_5_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__3_in_rule__Connection__UnorderedGroup_2_5_1__221999);
                    rule__Connection__UnorderedGroup_2_5_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10080:1: rule__Connection__UnorderedGroup_2_5_1__3 : rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_5_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10084:1: ( rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10085:2: rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__322024);
            rule__Connection__UnorderedGroup_2_5_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10086:2: ( rule__Connection__UnorderedGroup_2_5_1__4 )?
            int alt58=2;
            int LA58_0 = input.LA(1);

            if ( LA58_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) ) {
                alt58=1;
            }
            switch (alt58) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10086:2: rule__Connection__UnorderedGroup_2_5_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__4_in_rule__Connection__UnorderedGroup_2_5_1__322027);
                    rule__Connection__UnorderedGroup_2_5_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10093:1: rule__Connection__UnorderedGroup_2_5_1__4 : rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_5_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10097:1: ( rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10098:2: rule__Connection__UnorderedGroup_2_5_1__Impl ( rule__Connection__UnorderedGroup_2_5_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__422052);
            rule__Connection__UnorderedGroup_2_5_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10099:2: ( rule__Connection__UnorderedGroup_2_5_1__5 )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( LA59_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 2) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_5_1(), 1) ) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10099:2: rule__Connection__UnorderedGroup_2_5_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__5_in_rule__Connection__UnorderedGroup_2_5_1__422055);
                    rule__Connection__UnorderedGroup_2_5_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_5_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10106:1: rule__Connection__UnorderedGroup_2_5_1__5 : rule__Connection__UnorderedGroup_2_5_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_5_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10110:1: ( rule__Connection__UnorderedGroup_2_5_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10111:2: rule__Connection__UnorderedGroup_2_5_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__522080);
            rule__Connection__UnorderedGroup_2_5_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_5_1__5"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10130:1: rule__Connection__UnorderedGroup_2_6_1 : rule__Connection__UnorderedGroup_2_6_1__0 {...}?;
    public final void rule__Connection__UnorderedGroup_2_6_1() throws RecognitionException {

            	int stackSize = keepStackSize();
        		getUnorderedGroupHelper().enter(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1());
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10135:1: ( rule__Connection__UnorderedGroup_2_6_1__0 {...}?)
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10136:2: rule__Connection__UnorderedGroup_2_6_1__0 {...}?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__0_in_rule__Connection__UnorderedGroup_2_6_122116);
            rule__Connection__UnorderedGroup_2_6_1__0();

            state._fsp--;

            if ( ! getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1()) ) {
                throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1", "getUnorderedGroupHelper().canLeave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1())");
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	getUnorderedGroupHelper().leave(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__Impl"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10147:1: rule__Connection__UnorderedGroup_2_6_1__Impl : ( ({...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) ) ) ) ;
    public final void rule__Connection__UnorderedGroup_2_6_1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
        		boolean selected = false;
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10152:1: ( ( ({...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) ) ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10153:3: ( ({...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) ) ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10153:3: ( ({...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) ) ) | ({...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) ) ) )
            int alt60=6;
            int LA60_0 = input.LA(1);

            if ( LA60_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) ) {
                int LA60_1 = input.LA(2);

                if ( LA60_1 ==30 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) ) {
                    alt60=6;
                }
                else if ( LA60_1 ==29 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) ) {
                    alt60=5;
                }
                else if ( LA60_1 ==28 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) ) {
                    alt60=4;
                }
                else if ( LA60_1 ==27 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) {
                    alt60=3;
                }
                else if ( LA60_1 ==26 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) ) {
                    alt60=2;
                }
                else if ( LA60_1 ==23 && getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) ) {
                    alt60=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 60, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 60, 0, input);

                throw nvae;
            }
            switch (alt60) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10155:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10155:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10156:5: {...}? => ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10156:111: ( ( ( rule__Connection__Group_2_6_1_0__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10157:6: ( ( rule__Connection__Group_2_6_1_0__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10163:6: ( ( rule__Connection__Group_2_6_1_0__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10165:7: ( rule__Connection__Group_2_6_1_0__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6_1_0()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10166:7: ( rule__Connection__Group_2_6_1_0__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10166:8: rule__Connection__Group_2_6_1_0__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6_1_0__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22205);
                    rule__Connection__Group_2_6_1_0__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6_1_0()); 

                    }


                    }


                    }


                    }
                    break;
                case 2 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10172:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10172:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10173:5: {...}? => ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10173:111: ( ( ( rule__Connection__Group_2_6_1_1__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10174:6: ( ( rule__Connection__Group_2_6_1_1__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10180:6: ( ( rule__Connection__Group_2_6_1_1__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10182:7: ( rule__Connection__Group_2_6_1_1__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6_1_1()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10183:7: ( rule__Connection__Group_2_6_1_1__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10183:8: rule__Connection__Group_2_6_1_1__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6_1_1__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22296);
                    rule__Connection__Group_2_6_1_1__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6_1_1()); 

                    }


                    }


                    }


                    }
                    break;
                case 3 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10189:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10189:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10190:5: {...}? => ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10190:111: ( ( ( rule__Connection__Group_2_6_1_2__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10191:6: ( ( rule__Connection__Group_2_6_1_2__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10197:6: ( ( rule__Connection__Group_2_6_1_2__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10199:7: ( rule__Connection__Group_2_6_1_2__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6_1_2()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10200:7: ( rule__Connection__Group_2_6_1_2__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10200:8: rule__Connection__Group_2_6_1_2__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6_1_2__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22387);
                    rule__Connection__Group_2_6_1_2__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6_1_2()); 

                    }


                    }


                    }


                    }
                    break;
                case 4 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10206:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10206:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10207:5: {...}? => ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10207:111: ( ( ( rule__Connection__Group_2_6_1_3__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10208:6: ( ( rule__Connection__Group_2_6_1_3__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10214:6: ( ( rule__Connection__Group_2_6_1_3__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10216:7: ( rule__Connection__Group_2_6_1_3__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6_1_3()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10217:7: ( rule__Connection__Group_2_6_1_3__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10217:8: rule__Connection__Group_2_6_1_3__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6_1_3__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22478);
                    rule__Connection__Group_2_6_1_3__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6_1_3()); 

                    }


                    }


                    }


                    }
                    break;
                case 5 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10223:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10223:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10224:5: {...}? => ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10224:111: ( ( ( rule__Connection__Group_2_6_1_4__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10225:6: ( ( rule__Connection__Group_2_6_1_4__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10231:6: ( ( rule__Connection__Group_2_6_1_4__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10233:7: ( rule__Connection__Group_2_6_1_4__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6_1_4()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10234:7: ( rule__Connection__Group_2_6_1_4__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10234:8: rule__Connection__Group_2_6_1_4__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6_1_4__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22569);
                    rule__Connection__Group_2_6_1_4__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6_1_4()); 

                    }


                    }


                    }


                    }
                    break;
                case 6 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10240:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) ) )
                    {
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10240:4: ({...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10241:5: {...}? => ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) )
                    {
                    if ( ! getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) ) {
                        throw new FailedPredicateException(input, "rule__Connection__UnorderedGroup_2_6_1__Impl", "getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5)");
                    }
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10241:111: ( ( ( rule__Connection__Group_2_6_1_5__0 ) ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10242:6: ( ( rule__Connection__Group_2_6_1_5__0 ) )
                    {
                     
                    	 				  getUnorderedGroupHelper().select(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5);
                    	 				

                    	 				  selected = true;
                    	 				
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10248:6: ( ( rule__Connection__Group_2_6_1_5__0 ) )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10250:7: ( rule__Connection__Group_2_6_1_5__0 )
                    {
                     before(grammarAccess.getConnectionAccess().getGroup_2_6_1_5()); 
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10251:7: ( rule__Connection__Group_2_6_1_5__0 )
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10251:8: rule__Connection__Group_2_6_1_5__0
                    {
                    pushFollow(FOLLOW_rule__Connection__Group_2_6_1_5__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22660);
                    rule__Connection__Group_2_6_1_5__0();

                    state._fsp--;


                    }

                     after(grammarAccess.getConnectionAccess().getGroup_2_6_1_5()); 

                    }


                    }


                    }


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	if (selected)
            		getUnorderedGroupHelper().returnFromSelection(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1());
            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__Impl"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10266:1: rule__Connection__UnorderedGroup_2_6_1__0 : rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__1 )? ;
    public final void rule__Connection__UnorderedGroup_2_6_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10270:1: ( rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__1 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10271:2: rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__1 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__022719);
            rule__Connection__UnorderedGroup_2_6_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10272:2: ( rule__Connection__UnorderedGroup_2_6_1__1 )?
            int alt61=2;
            int LA61_0 = input.LA(1);

            if ( LA61_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) ) {
                alt61=1;
            }
            switch (alt61) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10272:2: rule__Connection__UnorderedGroup_2_6_1__1
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__1_in_rule__Connection__UnorderedGroup_2_6_1__022722);
                    rule__Connection__UnorderedGroup_2_6_1__1();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__0"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10279:1: rule__Connection__UnorderedGroup_2_6_1__1 : rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__2 )? ;
    public final void rule__Connection__UnorderedGroup_2_6_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10283:1: ( rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__2 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10284:2: rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__2 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__122747);
            rule__Connection__UnorderedGroup_2_6_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10285:2: ( rule__Connection__UnorderedGroup_2_6_1__2 )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( LA62_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10285:2: rule__Connection__UnorderedGroup_2_6_1__2
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__2_in_rule__Connection__UnorderedGroup_2_6_1__122750);
                    rule__Connection__UnorderedGroup_2_6_1__2();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__1"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10292:1: rule__Connection__UnorderedGroup_2_6_1__2 : rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__3 )? ;
    public final void rule__Connection__UnorderedGroup_2_6_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10296:1: ( rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__3 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10297:2: rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__3 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__222775);
            rule__Connection__UnorderedGroup_2_6_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10298:2: ( rule__Connection__UnorderedGroup_2_6_1__3 )?
            int alt63=2;
            int LA63_0 = input.LA(1);

            if ( LA63_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) ) {
                alt63=1;
            }
            switch (alt63) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10298:2: rule__Connection__UnorderedGroup_2_6_1__3
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__3_in_rule__Connection__UnorderedGroup_2_6_1__222778);
                    rule__Connection__UnorderedGroup_2_6_1__3();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__2"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10305:1: rule__Connection__UnorderedGroup_2_6_1__3 : rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__4 )? ;
    public final void rule__Connection__UnorderedGroup_2_6_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10309:1: ( rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__4 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10310:2: rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__4 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__322803);
            rule__Connection__UnorderedGroup_2_6_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10311:2: ( rule__Connection__UnorderedGroup_2_6_1__4 )?
            int alt64=2;
            int LA64_0 = input.LA(1);

            if ( LA64_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) ) {
                alt64=1;
            }
            switch (alt64) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10311:2: rule__Connection__UnorderedGroup_2_6_1__4
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__4_in_rule__Connection__UnorderedGroup_2_6_1__322806);
                    rule__Connection__UnorderedGroup_2_6_1__4();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__3"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10318:1: rule__Connection__UnorderedGroup_2_6_1__4 : rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__5 )? ;
    public final void rule__Connection__UnorderedGroup_2_6_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10322:1: ( rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__5 )? )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10323:2: rule__Connection__UnorderedGroup_2_6_1__Impl ( rule__Connection__UnorderedGroup_2_6_1__5 )?
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__422831);
            rule__Connection__UnorderedGroup_2_6_1__Impl();

            state._fsp--;

            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10324:2: ( rule__Connection__UnorderedGroup_2_6_1__5 )?
            int alt65=2;
            int LA65_0 = input.LA(1);

            if ( LA65_0 ==25 && ( getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 4) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 5) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 3) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 0) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 1) || getUnorderedGroupHelper().canSelect(grammarAccess.getConnectionAccess().getUnorderedGroup_2_6_1(), 2) ) ) {
                alt65=1;
            }
            switch (alt65) {
                case 1 :
                    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10324:2: rule__Connection__UnorderedGroup_2_6_1__5
                    {
                    pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__5_in_rule__Connection__UnorderedGroup_2_6_1__422834);
                    rule__Connection__UnorderedGroup_2_6_1__5();

                    state._fsp--;


                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__4"


    // $ANTLR start "rule__Connection__UnorderedGroup_2_6_1__5"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10331:1: rule__Connection__UnorderedGroup_2_6_1__5 : rule__Connection__UnorderedGroup_2_6_1__Impl ;
    public final void rule__Connection__UnorderedGroup_2_6_1__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10335:1: ( rule__Connection__UnorderedGroup_2_6_1__Impl )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10336:2: rule__Connection__UnorderedGroup_2_6_1__Impl
            {
            pushFollow(FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__522859);
            rule__Connection__UnorderedGroup_2_6_1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UnorderedGroup_2_6_1__5"


    // $ANTLR start "rule__Model__PackageAssignment_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10355:1: rule__Model__PackageAssignment_0 : ( rulePackagePrefix ) ;
    public final void rule__Model__PackageAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10359:1: ( ( rulePackagePrefix ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10360:1: ( rulePackagePrefix )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10360:1: ( rulePackagePrefix )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10361:1: rulePackagePrefix
            {
             before(grammarAccess.getModelAccess().getPackagePackagePrefixParserRuleCall_0_0()); 
            pushFollow(FOLLOW_rulePackagePrefix_in_rule__Model__PackageAssignment_022899);
            rulePackagePrefix();

            state._fsp--;

             after(grammarAccess.getModelAccess().getPackagePackagePrefixParserRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__PackageAssignment_0"


    // $ANTLR start "rule__Model__ConnectionAssignment_1_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10370:1: rule__Model__ConnectionAssignment_1_0 : ( ruleConnection ) ;
    public final void rule__Model__ConnectionAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10374:1: ( ( ruleConnection ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10375:1: ( ruleConnection )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10375:1: ( ruleConnection )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10376:1: ruleConnection
            {
             before(grammarAccess.getModelAccess().getConnectionConnectionParserRuleCall_1_0_0()); 
            pushFollow(FOLLOW_ruleConnection_in_rule__Model__ConnectionAssignment_1_022930);
            ruleConnection();

            state._fsp--;

             after(grammarAccess.getModelAccess().getConnectionConnectionParserRuleCall_1_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__ConnectionAssignment_1_0"


    // $ANTLR start "rule__Model__CreatedaoAssignment_1_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10385:1: rule__Model__CreatedaoAssignment_1_1 : ( ruleCreateDAO ) ;
    public final void rule__Model__CreatedaoAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10389:1: ( ( ruleCreateDAO ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10390:1: ( ruleCreateDAO )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10390:1: ( ruleCreateDAO )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10391:1: ruleCreateDAO
            {
             before(grammarAccess.getModelAccess().getCreatedaoCreateDAOParserRuleCall_1_1_0()); 
            pushFollow(FOLLOW_ruleCreateDAO_in_rule__Model__CreatedaoAssignment_1_122961);
            ruleCreateDAO();

            state._fsp--;

             after(grammarAccess.getModelAccess().getCreatedaoCreateDAOParserRuleCall_1_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__CreatedaoAssignment_1_1"


    // $ANTLR start "rule__Model__TypesAssignment_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10400:1: rule__Model__TypesAssignment_2 : ( ruleType ) ;
    public final void rule__Model__TypesAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10404:1: ( ( ruleType ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10405:1: ( ruleType )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10405:1: ( ruleType )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10406:1: ruleType
            {
             before(grammarAccess.getModelAccess().getTypesTypeParserRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleType_in_rule__Model__TypesAssignment_222992);
            ruleType();

            state._fsp--;

             after(grammarAccess.getModelAccess().getTypesTypeParserRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Model__TypesAssignment_2"


    // $ANTLR start "rule__PackagePrefix__NameAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10415:1: rule__PackagePrefix__NameAssignment_1 : ( ruleJAVAID ) ;
    public final void rule__PackagePrefix__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10419:1: ( ( ruleJAVAID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10420:1: ( ruleJAVAID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10420:1: ( ruleJAVAID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10421:1: ruleJAVAID
            {
             before(grammarAccess.getPackagePrefixAccess().getNameJAVAIDParserRuleCall_1_0()); 
            pushFollow(FOLLOW_ruleJAVAID_in_rule__PackagePrefix__NameAssignment_123023);
            ruleJAVAID();

            state._fsp--;

             after(grammarAccess.getPackagePrefixAccess().getNameJAVAIDParserRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__PackagePrefix__NameAssignment_1"


    // $ANTLR start "rule__Layer__NameAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10430:1: rule__Layer__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Layer__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10434:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10435:1: ( RULE_ID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10435:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10436:1: RULE_ID
            {
             before(grammarAccess.getLayerAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Layer__NameAssignment_123054); 
             after(grammarAccess.getLayerAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__NameAssignment_1"


    // $ANTLR start "rule__Layer__ConnectionAssignment_3_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10445:1: rule__Layer__ConnectionAssignment_3_0 : ( ruleConnection ) ;
    public final void rule__Layer__ConnectionAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10449:1: ( ( ruleConnection ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10450:1: ( ruleConnection )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10450:1: ( ruleConnection )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10451:1: ruleConnection
            {
             before(grammarAccess.getLayerAccess().getConnectionConnectionParserRuleCall_3_0_0()); 
            pushFollow(FOLLOW_ruleConnection_in_rule__Layer__ConnectionAssignment_3_023085);
            ruleConnection();

            state._fsp--;

             after(grammarAccess.getLayerAccess().getConnectionConnectionParserRuleCall_3_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__ConnectionAssignment_3_0"


    // $ANTLR start "rule__Layer__CreatedaoAssignment_3_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10460:1: rule__Layer__CreatedaoAssignment_3_1 : ( ruleCreateDAO ) ;
    public final void rule__Layer__CreatedaoAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10464:1: ( ( ruleCreateDAO ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10465:1: ( ruleCreateDAO )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10465:1: ( ruleCreateDAO )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10466:1: ruleCreateDAO
            {
             before(grammarAccess.getLayerAccess().getCreatedaoCreateDAOParserRuleCall_3_1_0()); 
            pushFollow(FOLLOW_ruleCreateDAO_in_rule__Layer__CreatedaoAssignment_3_123116);
            ruleCreateDAO();

            state._fsp--;

             after(grammarAccess.getLayerAccess().getCreatedaoCreateDAOParserRuleCall_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__CreatedaoAssignment_3_1"


    // $ANTLR start "rule__Layer__TypesAssignment_4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10475:1: rule__Layer__TypesAssignment_4 : ( ruleType ) ;
    public final void rule__Layer__TypesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10479:1: ( ( ruleType ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10480:1: ( ruleType )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10480:1: ( ruleType )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10481:1: ruleType
            {
             before(grammarAccess.getLayerAccess().getTypesTypeParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleType_in_rule__Layer__TypesAssignment_423147);
            ruleType();

            state._fsp--;

             after(grammarAccess.getLayerAccess().getTypesTypeParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Layer__TypesAssignment_4"


    // $ANTLR start "rule__TypeDef__NameAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10490:1: rule__TypeDef__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__TypeDef__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10494:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10495:1: ( RULE_ID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10495:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10496:1: RULE_ID
            {
             before(grammarAccess.getTypeDefAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__TypeDef__NameAssignment_123178); 
             after(grammarAccess.getTypeDefAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__NameAssignment_1"


    // $ANTLR start "rule__TypeDef__MappedTypeAssignment_2_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10505:1: rule__TypeDef__MappedTypeAssignment_2_1 : ( ruleJAVAID ) ;
    public final void rule__TypeDef__MappedTypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10509:1: ( ( ruleJAVAID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10510:1: ( ruleJAVAID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10510:1: ( ruleJAVAID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10511:1: ruleJAVAID
            {
             before(grammarAccess.getTypeDefAccess().getMappedTypeJAVAIDParserRuleCall_2_1_0()); 
            pushFollow(FOLLOW_ruleJAVAID_in_rule__TypeDef__MappedTypeAssignment_2_123209);
            ruleJAVAID();

            state._fsp--;

             after(grammarAccess.getTypeDefAccess().getMappedTypeJAVAIDParserRuleCall_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__TypeDef__MappedTypeAssignment_2_1"


    // $ANTLR start "rule__Entity__NameAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10520:1: rule__Entity__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Entity__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10524:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10525:1: ( RULE_ID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10525:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10526:1: RULE_ID
            {
             before(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_123240); 
             after(grammarAccess.getEntityAccess().getNameIDTerminalRuleCall_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__NameAssignment_1"


    // $ANTLR start "rule__Entity__SuperEntityAssignment_2_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10535:1: rule__Entity__SuperEntityAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Entity__SuperEntityAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10539:1: ( ( ( RULE_ID ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10540:1: ( ( RULE_ID ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10540:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10541:1: ( RULE_ID )
            {
             before(grammarAccess.getEntityAccess().getSuperEntityEntityCrossReference_2_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10542:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10543:1: RULE_ID
            {
             before(grammarAccess.getEntityAccess().getSuperEntityEntityIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Entity__SuperEntityAssignment_2_123275); 
             after(grammarAccess.getEntityAccess().getSuperEntityEntityIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getEntityAccess().getSuperEntityEntityCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__SuperEntityAssignment_2_1"


    // $ANTLR start "rule__Entity__AttributesAssignment_4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10554:1: rule__Entity__AttributesAssignment_4 : ( ruleAttribute ) ;
    public final void rule__Entity__AttributesAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10558:1: ( ( ruleAttribute ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10559:1: ( ruleAttribute )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10559:1: ( ruleAttribute )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10560:1: ruleAttribute
            {
             before(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_4_0()); 
            pushFollow(FOLLOW_ruleAttribute_in_rule__Entity__AttributesAssignment_423310);
            ruleAttribute();

            state._fsp--;

             after(grammarAccess.getEntityAccess().getAttributesAttributeParserRuleCall_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Entity__AttributesAssignment_4"


    // $ANTLR start "rule__Attribute__OneAssignment_0_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10569:1: rule__Attribute__OneAssignment_0_0 : ( ( 'one' ) ) ;
    public final void rule__Attribute__OneAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10573:1: ( ( ( 'one' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10574:1: ( ( 'one' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10574:1: ( ( 'one' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10575:1: ( 'one' )
            {
             before(grammarAccess.getAttributeAccess().getOneOneKeyword_0_0_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10576:1: ( 'one' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10577:1: 'one'
            {
             before(grammarAccess.getAttributeAccess().getOneOneKeyword_0_0_0()); 
            match(input,34,FOLLOW_34_in_rule__Attribute__OneAssignment_0_023346); 
             after(grammarAccess.getAttributeAccess().getOneOneKeyword_0_0_0()); 

            }

             after(grammarAccess.getAttributeAccess().getOneOneKeyword_0_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__OneAssignment_0_0"


    // $ANTLR start "rule__Attribute__ManyAssignment_0_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10592:1: rule__Attribute__ManyAssignment_0_1 : ( ( 'many' ) ) ;
    public final void rule__Attribute__ManyAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10596:1: ( ( ( 'many' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10597:1: ( ( 'many' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10597:1: ( ( 'many' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10598:1: ( 'many' )
            {
             before(grammarAccess.getAttributeAccess().getManyManyKeyword_0_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10599:1: ( 'many' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10600:1: 'many'
            {
             before(grammarAccess.getAttributeAccess().getManyManyKeyword_0_1_0()); 
            match(input,35,FOLLOW_35_in_rule__Attribute__ManyAssignment_0_123390); 
             after(grammarAccess.getAttributeAccess().getManyManyKeyword_0_1_0()); 

            }

             after(grammarAccess.getAttributeAccess().getManyManyKeyword_0_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__ManyAssignment_0_1"


    // $ANTLR start "rule__Attribute__TypeAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10615:1: rule__Attribute__TypeAssignment_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attribute__TypeAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10619:1: ( ( ( RULE_ID ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10620:1: ( ( RULE_ID ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10620:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10621:1: ( RULE_ID )
            {
             before(grammarAccess.getAttributeAccess().getTypeTypeCrossReference_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10622:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10623:1: RULE_ID
            {
             before(grammarAccess.getAttributeAccess().getTypeTypeIDTerminalRuleCall_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Attribute__TypeAssignment_123433); 
             after(grammarAccess.getAttributeAccess().getTypeTypeIDTerminalRuleCall_1_0_1()); 

            }

             after(grammarAccess.getAttributeAccess().getTypeTypeCrossReference_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__TypeAssignment_1"


    // $ANTLR start "rule__Attribute__NameAssignment_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10634:1: rule__Attribute__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__Attribute__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10638:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10639:1: ( RULE_ID )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10639:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10640:1: RULE_ID
            {
             before(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_2_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_223468); 
             after(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__NameAssignment_2"


    // $ANTLR start "rule__Attribute__FlagsAssignment_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10649:1: rule__Attribute__FlagsAssignment_3 : ( ruleFlags ) ;
    public final void rule__Attribute__FlagsAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10653:1: ( ( ruleFlags ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10654:1: ( ruleFlags )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10654:1: ( ruleFlags )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10655:1: ruleFlags
            {
             before(grammarAccess.getAttributeAccess().getFlagsFlagsParserRuleCall_3_0()); 
            pushFollow(FOLLOW_ruleFlags_in_rule__Attribute__FlagsAssignment_323499);
            ruleFlags();

            state._fsp--;

             after(grammarAccess.getAttributeAccess().getFlagsFlagsParserRuleCall_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Attribute__FlagsAssignment_3"


    // $ANTLR start "rule__Flags__IdAssignment_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10664:1: rule__Flags__IdAssignment_0 : ( ( 'id' ) ) ;
    public final void rule__Flags__IdAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10668:1: ( ( ( 'id' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10669:1: ( ( 'id' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10669:1: ( ( 'id' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10670:1: ( 'id' )
            {
             before(grammarAccess.getFlagsAccess().getIdIdKeyword_0_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10671:1: ( 'id' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10672:1: 'id'
            {
             before(grammarAccess.getFlagsAccess().getIdIdKeyword_0_0()); 
            match(input,36,FOLLOW_36_in_rule__Flags__IdAssignment_023535); 
             after(grammarAccess.getFlagsAccess().getIdIdKeyword_0_0()); 

            }

             after(grammarAccess.getFlagsAccess().getIdIdKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Flags__IdAssignment_0"


    // $ANTLR start "rule__Flags__AutoidAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10687:1: rule__Flags__AutoidAssignment_1 : ( ( 'auto-increment' ) ) ;
    public final void rule__Flags__AutoidAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10691:1: ( ( ( 'auto-increment' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10692:1: ( ( 'auto-increment' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10692:1: ( ( 'auto-increment' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10693:1: ( 'auto-increment' )
            {
             before(grammarAccess.getFlagsAccess().getAutoidAutoIncrementKeyword_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10694:1: ( 'auto-increment' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10695:1: 'auto-increment'
            {
             before(grammarAccess.getFlagsAccess().getAutoidAutoIncrementKeyword_1_0()); 
            match(input,37,FOLLOW_37_in_rule__Flags__AutoidAssignment_123579); 
             after(grammarAccess.getFlagsAccess().getAutoidAutoIncrementKeyword_1_0()); 

            }

             after(grammarAccess.getFlagsAccess().getAutoidAutoIncrementKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Flags__AutoidAssignment_1"


    // $ANTLR start "rule__Connection__TypeAssignment_2_0_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10710:1: rule__Connection__TypeAssignment_2_0_0_2 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_0_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10714:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10715:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10715:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10716:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_0_0_2_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_0_0_223618);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_0_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_0_0_2"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_0_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10725:1: rule__Connection__DbnameAssignment_2_0_1_0_3 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_0_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10729:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10730:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10730:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10731:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_0_1_0_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_0_1_0_323649); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_0_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_0_1_0_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_0_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10740:1: rule__Connection__UserAssignment_2_0_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_0_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10744:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10745:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10745:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10746:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_0_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_0_1_1_323680); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_0_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_0_1_1_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_0_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10755:1: rule__Connection__PasswordAssignment_2_0_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_0_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10759:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10760:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10760:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10761:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_0_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_0_1_2_323711); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_0_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_0_1_2_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_0_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10770:1: rule__Connection__UrlAssignment_2_0_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_0_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10774:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10775:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10775:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10776:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_0_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_0_1_3_323742); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_0_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_0_1_3_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_0_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10785:1: rule__Connection__PortAssignment_2_0_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_0_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10789:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10790:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10790:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10791:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_0_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_0_1_4_323773); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_0_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_0_1_4_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_0_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10800:1: rule__Connection__PoolsizeAssignment_2_0_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_0_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10804:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10805:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10805:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10806:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_0_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_0_1_5_323804); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_0_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_0_1_5_3"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_1_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10815:1: rule__Connection__DbnameAssignment_2_1_0_2 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_1_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10819:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10820:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10820:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10821:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_1_0_2_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_1_0_223835); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_1_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_1_0_2"


    // $ANTLR start "rule__Connection__TypeAssignment_2_1_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10830:1: rule__Connection__TypeAssignment_2_1_1_0_3 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_1_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10834:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10835:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10835:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10836:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_1_1_0_3_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_1_1_0_323866);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_1_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_1_1_0_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_1_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10845:1: rule__Connection__UserAssignment_2_1_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_1_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10849:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10850:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10850:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10851:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_1_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_1_1_1_323897); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_1_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_1_1_1_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_1_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10860:1: rule__Connection__PasswordAssignment_2_1_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_1_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10864:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10865:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10865:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10866:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_1_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_1_1_2_323928); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_1_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_1_1_2_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_1_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10875:1: rule__Connection__UrlAssignment_2_1_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_1_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10879:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10880:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10880:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10881:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_1_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_1_1_3_323959); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_1_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_1_1_3_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_1_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10890:1: rule__Connection__PortAssignment_2_1_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_1_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10894:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10895:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10895:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10896:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_1_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_1_1_4_323990); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_1_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_1_1_4_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_1_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10905:1: rule__Connection__PoolsizeAssignment_2_1_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_1_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10909:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10910:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10910:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10911:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_1_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_1_1_5_324021); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_1_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_1_1_5_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_2_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10920:1: rule__Connection__UserAssignment_2_2_0_2 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_2_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10924:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10925:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10925:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10926:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_2_0_2_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_2_0_224052); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_2_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_2_0_2"


    // $ANTLR start "rule__Connection__TypeAssignment_2_2_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10935:1: rule__Connection__TypeAssignment_2_2_1_0_3 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_2_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10939:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10940:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10940:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10941:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_2_1_0_3_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_2_1_0_324083);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_2_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_2_1_0_3"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_2_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10950:1: rule__Connection__DbnameAssignment_2_2_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_2_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10954:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10955:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10955:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10956:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_2_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_2_1_1_324114); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_2_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_2_1_1_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_2_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10965:1: rule__Connection__PasswordAssignment_2_2_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_2_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10969:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10970:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10970:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10971:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_2_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_2_1_2_324145); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_2_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_2_1_2_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_2_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10980:1: rule__Connection__UrlAssignment_2_2_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_2_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10984:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10985:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10985:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10986:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_2_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_2_1_3_324176); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_2_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_2_1_3_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_2_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10995:1: rule__Connection__PortAssignment_2_2_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_2_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:10999:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11000:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11000:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11001:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_2_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_2_1_4_324207); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_2_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_2_1_4_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_2_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11010:1: rule__Connection__PoolsizeAssignment_2_2_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_2_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11014:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11015:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11015:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11016:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_2_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_2_1_5_324238); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_2_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_2_1_5_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_3_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11025:1: rule__Connection__PasswordAssignment_2_3_0_2 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_3_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11029:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11030:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11030:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11031:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_3_0_2_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_3_0_224269); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_3_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_3_0_2"


    // $ANTLR start "rule__Connection__TypeAssignment_2_3_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11040:1: rule__Connection__TypeAssignment_2_3_1_0_3 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_3_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11044:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11045:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11045:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11046:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_3_1_0_3_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_3_1_0_324300);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_3_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_3_1_0_3"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_3_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11055:1: rule__Connection__DbnameAssignment_2_3_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_3_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11059:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11060:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11060:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11061:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_3_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_3_1_1_324331); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_3_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_3_1_1_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_3_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11070:1: rule__Connection__UserAssignment_2_3_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_3_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11074:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11075:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11075:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11076:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_3_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_3_1_2_324362); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_3_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_3_1_2_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_3_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11085:1: rule__Connection__UrlAssignment_2_3_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_3_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11089:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11090:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11090:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11091:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_3_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_3_1_3_324393); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_3_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_3_1_3_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_3_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11100:1: rule__Connection__PortAssignment_2_3_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_3_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11104:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11105:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11105:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11106:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_3_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_3_1_4_324424); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_3_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_3_1_4_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_3_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11115:1: rule__Connection__PoolsizeAssignment_2_3_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_3_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11119:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11120:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11120:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11121:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_3_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_3_1_5_324455); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_3_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_3_1_5_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_4_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11130:1: rule__Connection__UrlAssignment_2_4_0_2 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_4_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11134:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11135:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11135:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11136:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_4_0_2_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_4_0_224486); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_4_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_4_0_2"


    // $ANTLR start "rule__Connection__TypeAssignment_2_4_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11145:1: rule__Connection__TypeAssignment_2_4_1_0_3 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_4_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11149:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11150:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11150:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11151:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_4_1_0_3_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_4_1_0_324517);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_4_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_4_1_0_3"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_4_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11160:1: rule__Connection__DbnameAssignment_2_4_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_4_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11164:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11165:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11165:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11166:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_4_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_4_1_1_324548); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_4_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_4_1_1_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_4_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11175:1: rule__Connection__UserAssignment_2_4_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_4_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11179:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11180:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11180:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11181:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_4_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_4_1_2_324579); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_4_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_4_1_2_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_4_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11190:1: rule__Connection__PasswordAssignment_2_4_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_4_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11194:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11195:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11195:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11196:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_4_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_4_1_3_324610); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_4_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_4_1_3_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_4_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11205:1: rule__Connection__PortAssignment_2_4_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_4_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11209:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11210:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11210:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11211:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_4_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_4_1_4_324641); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_4_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_4_1_4_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_4_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11220:1: rule__Connection__PoolsizeAssignment_2_4_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_4_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11224:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11225:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11225:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11226:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_4_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_4_1_5_324672); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_4_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_4_1_5_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_5_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11235:1: rule__Connection__PortAssignment_2_5_0_2 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_5_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11239:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11240:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11240:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11241:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_5_0_2_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_5_0_224703); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_5_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_5_0_2"


    // $ANTLR start "rule__Connection__TypeAssignment_2_5_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11250:1: rule__Connection__TypeAssignment_2_5_1_0_3 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_5_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11254:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11255:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11255:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11256:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_5_1_0_3_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_5_1_0_324734);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_5_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_5_1_0_3"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_5_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11265:1: rule__Connection__DbnameAssignment_2_5_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_5_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11269:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11270:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11270:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11271:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_5_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_5_1_1_324765); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_5_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_5_1_1_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_5_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11280:1: rule__Connection__UserAssignment_2_5_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_5_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11284:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11285:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11285:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11286:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_5_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_5_1_2_324796); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_5_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_5_1_2_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_5_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11295:1: rule__Connection__PasswordAssignment_2_5_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_5_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11299:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11300:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11300:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11301:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_5_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_5_1_3_324827); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_5_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_5_1_3_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_5_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11310:1: rule__Connection__UrlAssignment_2_5_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_5_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11314:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11315:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11315:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11316:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_5_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_5_1_4_324858); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_5_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_5_1_4_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_5_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11325:1: rule__Connection__PoolsizeAssignment_2_5_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_5_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11329:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11330:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11330:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11331:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_5_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_5_1_5_324889); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_5_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_5_1_5_3"


    // $ANTLR start "rule__Connection__PoolsizeAssignment_2_6_0_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11340:1: rule__Connection__PoolsizeAssignment_2_6_0_2 : ( RULE_STRING ) ;
    public final void rule__Connection__PoolsizeAssignment_2_6_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11344:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11345:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11345:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11346:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_6_0_2_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_6_0_224920); 
             after(grammarAccess.getConnectionAccess().getPoolsizeSTRINGTerminalRuleCall_2_6_0_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PoolsizeAssignment_2_6_0_2"


    // $ANTLR start "rule__Connection__TypeAssignment_2_6_1_0_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11355:1: rule__Connection__TypeAssignment_2_6_1_0_3 : ( ruleDataBase ) ;
    public final void rule__Connection__TypeAssignment_2_6_1_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11359:1: ( ( ruleDataBase ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11360:1: ( ruleDataBase )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11360:1: ( ruleDataBase )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11361:1: ruleDataBase
            {
             before(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_6_1_0_3_0()); 
            pushFollow(FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_6_1_0_324951);
            ruleDataBase();

            state._fsp--;

             after(grammarAccess.getConnectionAccess().getTypeDataBaseParserRuleCall_2_6_1_0_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__TypeAssignment_2_6_1_0_3"


    // $ANTLR start "rule__Connection__DbnameAssignment_2_6_1_1_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11370:1: rule__Connection__DbnameAssignment_2_6_1_1_3 : ( RULE_STRING ) ;
    public final void rule__Connection__DbnameAssignment_2_6_1_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11374:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11375:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11375:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11376:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_6_1_1_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_6_1_1_324982); 
             after(grammarAccess.getConnectionAccess().getDbnameSTRINGTerminalRuleCall_2_6_1_1_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__DbnameAssignment_2_6_1_1_3"


    // $ANTLR start "rule__Connection__UserAssignment_2_6_1_2_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11385:1: rule__Connection__UserAssignment_2_6_1_2_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UserAssignment_2_6_1_2_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11389:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11390:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11390:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11391:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_6_1_2_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_6_1_2_325013); 
             after(grammarAccess.getConnectionAccess().getUserSTRINGTerminalRuleCall_2_6_1_2_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UserAssignment_2_6_1_2_3"


    // $ANTLR start "rule__Connection__PasswordAssignment_2_6_1_3_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11400:1: rule__Connection__PasswordAssignment_2_6_1_3_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PasswordAssignment_2_6_1_3_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11404:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11405:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11405:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11406:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_6_1_3_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_6_1_3_325044); 
             after(grammarAccess.getConnectionAccess().getPasswordSTRINGTerminalRuleCall_2_6_1_3_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PasswordAssignment_2_6_1_3_3"


    // $ANTLR start "rule__Connection__UrlAssignment_2_6_1_4_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11415:1: rule__Connection__UrlAssignment_2_6_1_4_3 : ( RULE_STRING ) ;
    public final void rule__Connection__UrlAssignment_2_6_1_4_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11419:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11420:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11420:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11421:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_6_1_4_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_6_1_4_325075); 
             after(grammarAccess.getConnectionAccess().getUrlSTRINGTerminalRuleCall_2_6_1_4_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__UrlAssignment_2_6_1_4_3"


    // $ANTLR start "rule__Connection__PortAssignment_2_6_1_5_3"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11430:1: rule__Connection__PortAssignment_2_6_1_5_3 : ( RULE_STRING ) ;
    public final void rule__Connection__PortAssignment_2_6_1_5_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11434:1: ( ( RULE_STRING ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11435:1: ( RULE_STRING )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11435:1: ( RULE_STRING )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11436:1: RULE_STRING
            {
             before(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_6_1_5_3_0()); 
            match(input,RULE_STRING,FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_6_1_5_325106); 
             after(grammarAccess.getConnectionAccess().getPortSTRINGTerminalRuleCall_2_6_1_5_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Connection__PortAssignment_2_6_1_5_3"


    // $ANTLR start "rule__DataBase__MysqlAssignment_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11445:1: rule__DataBase__MysqlAssignment_0 : ( ( 'MySQL' ) ) ;
    public final void rule__DataBase__MysqlAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11449:1: ( ( ( 'MySQL' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11450:1: ( ( 'MySQL' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11450:1: ( ( 'MySQL' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11451:1: ( 'MySQL' )
            {
             before(grammarAccess.getDataBaseAccess().getMysqlMySQLKeyword_0_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11452:1: ( 'MySQL' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11453:1: 'MySQL'
            {
             before(grammarAccess.getDataBaseAccess().getMysqlMySQLKeyword_0_0()); 
            match(input,38,FOLLOW_38_in_rule__DataBase__MysqlAssignment_025142); 
             after(grammarAccess.getDataBaseAccess().getMysqlMySQLKeyword_0_0()); 

            }

             after(grammarAccess.getDataBaseAccess().getMysqlMySQLKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataBase__MysqlAssignment_0"


    // $ANTLR start "rule__DataBase__SqlserverAssignment_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11468:1: rule__DataBase__SqlserverAssignment_1 : ( ( 'SQL Server' ) ) ;
    public final void rule__DataBase__SqlserverAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11472:1: ( ( ( 'SQL Server' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11473:1: ( ( 'SQL Server' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11473:1: ( ( 'SQL Server' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11474:1: ( 'SQL Server' )
            {
             before(grammarAccess.getDataBaseAccess().getSqlserverSQLServerKeyword_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11475:1: ( 'SQL Server' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11476:1: 'SQL Server'
            {
             before(grammarAccess.getDataBaseAccess().getSqlserverSQLServerKeyword_1_0()); 
            match(input,39,FOLLOW_39_in_rule__DataBase__SqlserverAssignment_125186); 
             after(grammarAccess.getDataBaseAccess().getSqlserverSQLServerKeyword_1_0()); 

            }

             after(grammarAccess.getDataBaseAccess().getSqlserverSQLServerKeyword_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataBase__SqlserverAssignment_1"


    // $ANTLR start "rule__DataBase__OracleAssignment_2"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11491:1: rule__DataBase__OracleAssignment_2 : ( ( 'Oracle' ) ) ;
    public final void rule__DataBase__OracleAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11495:1: ( ( ( 'Oracle' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11496:1: ( ( 'Oracle' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11496:1: ( ( 'Oracle' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11497:1: ( 'Oracle' )
            {
             before(grammarAccess.getDataBaseAccess().getOracleOracleKeyword_2_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11498:1: ( 'Oracle' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11499:1: 'Oracle'
            {
             before(grammarAccess.getDataBaseAccess().getOracleOracleKeyword_2_0()); 
            match(input,40,FOLLOW_40_in_rule__DataBase__OracleAssignment_225230); 
             after(grammarAccess.getDataBaseAccess().getOracleOracleKeyword_2_0()); 

            }

             after(grammarAccess.getDataBaseAccess().getOracleOracleKeyword_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__DataBase__OracleAssignment_2"


    // $ANTLR start "rule__CreateDAO__BasedaoAssignment_0"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11514:1: rule__CreateDAO__BasedaoAssignment_0 : ( ( 'base-dao' ) ) ;
    public final void rule__CreateDAO__BasedaoAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11518:1: ( ( ( 'base-dao' ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11519:1: ( ( 'base-dao' ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11519:1: ( ( 'base-dao' ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11520:1: ( 'base-dao' )
            {
             before(grammarAccess.getCreateDAOAccess().getBasedaoBaseDaoKeyword_0_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11521:1: ( 'base-dao' )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11522:1: 'base-dao'
            {
             before(grammarAccess.getCreateDAOAccess().getBasedaoBaseDaoKeyword_0_0()); 
            match(input,41,FOLLOW_41_in_rule__CreateDAO__BasedaoAssignment_025274); 
             after(grammarAccess.getCreateDAOAccess().getBasedaoBaseDaoKeyword_0_0()); 

            }

             after(grammarAccess.getCreateDAOAccess().getBasedaoBaseDaoKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__BasedaoAssignment_0"


    // $ANTLR start "rule__CreateDAO__DaolayerAssignment_2_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11537:1: rule__CreateDAO__DaolayerAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__CreateDAO__DaolayerAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11541:1: ( ( ( RULE_ID ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11542:1: ( ( RULE_ID ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11542:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11543:1: ( RULE_ID )
            {
             before(grammarAccess.getCreateDAOAccess().getDaolayerLayerCrossReference_2_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11544:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11545:1: RULE_ID
            {
             before(grammarAccess.getCreateDAOAccess().getDaolayerLayerIDTerminalRuleCall_2_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CreateDAO__DaolayerAssignment_2_125317); 
             after(grammarAccess.getCreateDAOAccess().getDaolayerLayerIDTerminalRuleCall_2_1_0_1()); 

            }

             after(grammarAccess.getCreateDAOAccess().getDaolayerLayerCrossReference_2_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__DaolayerAssignment_2_1"


    // $ANTLR start "rule__CreateDAO__FirstEntityAssignment_4"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11556:1: rule__CreateDAO__FirstEntityAssignment_4 : ( ( RULE_ID ) ) ;
    public final void rule__CreateDAO__FirstEntityAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11560:1: ( ( ( RULE_ID ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11561:1: ( ( RULE_ID ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11561:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11562:1: ( RULE_ID )
            {
             before(grammarAccess.getCreateDAOAccess().getFirstEntityEntityCrossReference_4_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11563:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11564:1: RULE_ID
            {
             before(grammarAccess.getCreateDAOAccess().getFirstEntityEntityIDTerminalRuleCall_4_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CreateDAO__FirstEntityAssignment_425356); 
             after(grammarAccess.getCreateDAOAccess().getFirstEntityEntityIDTerminalRuleCall_4_0_1()); 

            }

             after(grammarAccess.getCreateDAOAccess().getFirstEntityEntityCrossReference_4_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__FirstEntityAssignment_4"


    // $ANTLR start "rule__CreateDAO__EntitiesAssignment_5_1"
    // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11575:1: rule__CreateDAO__EntitiesAssignment_5_1 : ( ( RULE_ID ) ) ;
    public final void rule__CreateDAO__EntitiesAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11579:1: ( ( ( RULE_ID ) ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11580:1: ( ( RULE_ID ) )
            {
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11580:1: ( ( RULE_ID ) )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11581:1: ( RULE_ID )
            {
             before(grammarAccess.getCreateDAOAccess().getEntitiesEntityCrossReference_5_1_0()); 
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11582:1: ( RULE_ID )
            // ../org.xtext.ic.dsl.ui/src-gen/org/xtext/ic/dsl/ui/contentassist/antlr/internal/InternalIcDsl.g:11583:1: RULE_ID
            {
             before(grammarAccess.getCreateDAOAccess().getEntitiesEntityIDTerminalRuleCall_5_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__CreateDAO__EntitiesAssignment_5_125395); 
             after(grammarAccess.getCreateDAOAccess().getEntitiesEntityIDTerminalRuleCall_5_1_0_1()); 

            }

             after(grammarAccess.getCreateDAOAccess().getEntitiesEntityCrossReference_5_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__CreateDAO__EntitiesAssignment_5_1"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModel68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__0_in_ruleModel94 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackagePrefix_in_entryRulePackagePrefix121 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePackagePrefix128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackagePrefix__Group__0_in_rulePackagePrefix154 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_entryRuleType181 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleType188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Type__Alternatives_in_ruleType214 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLayer_in_entryRuleLayer241 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleLayer248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__Group__0_in_ruleLayer274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeDef_in_entryRuleTypeDef301 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTypeDef308 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__0_in_ruleTypeDef334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleJAVAID_in_entryRuleJAVAID361 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleJAVAID368 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__JAVAID__Group__0_in_ruleJAVAID394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_entryRuleEntity421 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntity428 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0_in_ruleEntity454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_entryRuleAttribute481 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAttribute488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0_in_ruleAttribute514 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFlags_in_entryRuleFlags541 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFlags548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Flags__Group__0_in_ruleFlags574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConnection_in_entryRuleConnection601 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleConnection608 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group__0_in_ruleConnection634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_entryRuleDataBase661 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDataBase668 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataBase__Alternatives_in_ruleDataBase694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCreateDAO_in_entryRuleCreateDAO721 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCreateDAO728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__0_in_ruleCreateDAO754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleLayer_in_rule__Type__Alternatives790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTypeDef_in_rule__Type__Alternatives807 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntity_in_rule__Type__Alternatives824 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__OneAssignment_0_0_in_rule__Attribute__Alternatives_0856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__ManyAssignment_0_1_in_rule__Attribute__Alternatives_0874 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0__0_in_rule__Connection__Alternatives_2907 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1__0_in_rule__Connection__Alternatives_2925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2__0_in_rule__Connection__Alternatives_2943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3__0_in_rule__Connection__Alternatives_2961 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4__0_in_rule__Connection__Alternatives_2979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5__0_in_rule__Connection__Alternatives_2997 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6__0_in_rule__Connection__Alternatives_21015 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataBase__MysqlAssignment_0_in_rule__DataBase__Alternatives1048 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataBase__SqlserverAssignment_1_in_rule__DataBase__Alternatives1066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__DataBase__OracleAssignment_2_in_rule__DataBase__Alternatives1084 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__0__Impl_in_rule__Model__Group__01115 = new BitSet(new long[]{0x0000020100100000L});
    public static final BitSet FOLLOW_rule__Model__Group__1_in_rule__Model__Group__01118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__PackageAssignment_0_in_rule__Model__Group__0__Impl1145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__1__Impl_in_rule__Model__Group__11176 = new BitSet(new long[]{0x0000000000049000L});
    public static final BitSet FOLLOW_rule__Model__Group__2_in_rule__Model__Group__11179 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__UnorderedGroup_1_in_rule__Model__Group__1__Impl1206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__Group__2__Impl_in_rule__Model__Group__21236 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__TypesAssignment_2_in_rule__Model__Group__2__Impl1263 = new BitSet(new long[]{0x0000000000049002L});
    public static final BitSet FOLLOW_rule__PackagePrefix__Group__0__Impl_in_rule__PackagePrefix__Group__01300 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__PackagePrefix__Group__1_in_rule__PackagePrefix__Group__01303 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__PackagePrefix__Group__0__Impl1331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackagePrefix__Group__1__Impl_in_rule__PackagePrefix__Group__11362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__PackagePrefix__NameAssignment_1_in_rule__PackagePrefix__Group__1__Impl1389 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__Group__0__Impl_in_rule__Layer__Group__01423 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Layer__Group__1_in_rule__Layer__Group__01426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__Layer__Group__0__Impl1454 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__Group__1__Impl_in_rule__Layer__Group__11485 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_rule__Layer__Group__2_in_rule__Layer__Group__11488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__NameAssignment_1_in_rule__Layer__Group__1__Impl1515 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__Group__2__Impl_in_rule__Layer__Group__21545 = new BitSet(new long[]{0x0000020100100000L});
    public static final BitSet FOLLOW_rule__Layer__Group__3_in_rule__Layer__Group__21548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Layer__Group__2__Impl1576 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__Group__3__Impl_in_rule__Layer__Group__31607 = new BitSet(new long[]{0x000000000004D000L});
    public static final BitSet FOLLOW_rule__Layer__Group__4_in_rule__Layer__Group__31610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__UnorderedGroup_3_in_rule__Layer__Group__3__Impl1637 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__Group__4__Impl_in_rule__Layer__Group__41667 = new BitSet(new long[]{0x000000000004D000L});
    public static final BitSet FOLLOW_rule__Layer__Group__5_in_rule__Layer__Group__41670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__TypesAssignment_4_in_rule__Layer__Group__4__Impl1697 = new BitSet(new long[]{0x0000000000049002L});
    public static final BitSet FOLLOW_rule__Layer__Group__5__Impl_in_rule__Layer__Group__51728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__Layer__Group__5__Impl1756 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__0__Impl_in_rule__TypeDef__Group__01799 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__1_in_rule__TypeDef__Group__01802 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__TypeDef__Group__0__Impl1830 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__1__Impl_in_rule__TypeDef__Group__11861 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__2_in_rule__TypeDef__Group__11864 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__NameAssignment_1_in_rule__TypeDef__Group__1__Impl1891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group__2__Impl_in_rule__TypeDef__Group__21921 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group_2__0_in_rule__TypeDef__Group__2__Impl1948 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group_2__0__Impl_in_rule__TypeDef__Group_2__01985 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__TypeDef__Group_2__1_in_rule__TypeDef__Group_2__01988 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__TypeDef__Group_2__0__Impl2016 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__Group_2__1__Impl_in_rule__TypeDef__Group_2__12047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__TypeDef__MappedTypeAssignment_2_1_in_rule__TypeDef__Group_2__1__Impl2074 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__JAVAID__Group__0__Impl_in_rule__JAVAID__Group__02108 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_rule__JAVAID__Group__1_in_rule__JAVAID__Group__02111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__JAVAID__Group__0__Impl2138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__JAVAID__Group__1__Impl_in_rule__JAVAID__Group__12167 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__JAVAID__Group_1__0_in_rule__JAVAID__Group__1__Impl2194 = new BitSet(new long[]{0x0000000000020002L});
    public static final BitSet FOLLOW_rule__JAVAID__Group_1__0__Impl_in_rule__JAVAID__Group_1__02229 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__JAVAID__Group_1__1_in_rule__JAVAID__Group_1__02232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__JAVAID__Group_1__0__Impl2260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__JAVAID__Group_1__1__Impl_in_rule__JAVAID__Group_1__12291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__JAVAID__Group_1__1__Impl2318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__0__Impl_in_rule__Entity__Group__02351 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group__1_in_rule__Entity__Group__02354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__Entity__Group__0__Impl2382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__1__Impl_in_rule__Entity__Group__12413 = new BitSet(new long[]{0x0000000000082000L});
    public static final BitSet FOLLOW_rule__Entity__Group__2_in_rule__Entity__Group__12416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__NameAssignment_1_in_rule__Entity__Group__1__Impl2443 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__2__Impl_in_rule__Entity__Group__22473 = new BitSet(new long[]{0x0000000000082000L});
    public static final BitSet FOLLOW_rule__Entity__Group__3_in_rule__Entity__Group__22476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0_in_rule__Entity__Group__2__Impl2503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__3__Impl_in_rule__Entity__Group__32534 = new BitSet(new long[]{0x0000000C00004010L});
    public static final BitSet FOLLOW_rule__Entity__Group__4_in_rule__Entity__Group__32537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__Entity__Group__3__Impl2565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group__4__Impl_in_rule__Entity__Group__42596 = new BitSet(new long[]{0x0000000C00004010L});
    public static final BitSet FOLLOW_rule__Entity__Group__5_in_rule__Entity__Group__42599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__AttributesAssignment_4_in_rule__Entity__Group__4__Impl2626 = new BitSet(new long[]{0x0000000C00000012L});
    public static final BitSet FOLLOW_rule__Entity__Group__5__Impl_in_rule__Entity__Group__52657 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__Entity__Group__5__Impl2685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__0__Impl_in_rule__Entity__Group_2__02728 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1_in_rule__Entity__Group_2__02731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__Entity__Group_2__0__Impl2759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__Group_2__1__Impl_in_rule__Entity__Group_2__12790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Entity__SuperEntityAssignment_2_1_in_rule__Entity__Group_2__1__Impl2817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__0__Impl_in_rule__Attribute__Group__02851 = new BitSet(new long[]{0x0000000C00000010L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1_in_rule__Attribute__Group__02854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Alternatives_0_in_rule__Attribute__Group__0__Impl2881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__1__Impl_in_rule__Attribute__Group__12912 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2_in_rule__Attribute__Group__12915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__TypeAssignment_1_in_rule__Attribute__Group__1__Impl2942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__2__Impl_in_rule__Attribute__Group__22972 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_rule__Attribute__Group__3_in_rule__Attribute__Group__22975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__NameAssignment_2_in_rule__Attribute__Group__2__Impl3002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__Group__3__Impl_in_rule__Attribute__Group__33032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Attribute__FlagsAssignment_3_in_rule__Attribute__Group__3__Impl3059 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Flags__Group__0__Impl_in_rule__Flags__Group__03098 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_rule__Flags__Group__1_in_rule__Flags__Group__03101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Flags__IdAssignment_0_in_rule__Flags__Group__0__Impl3128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Flags__Group__1__Impl_in_rule__Flags__Group__13158 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Flags__AutoidAssignment_1_in_rule__Flags__Group__1__Impl3185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group__0__Impl_in_rule__Connection__Group__03220 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_rule__Connection__Group__1_in_rule__Connection__Group__03223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__Connection__Group__0__Impl3251 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group__1__Impl_in_rule__Connection__Group__13282 = new BitSet(new long[]{0x00000000FC800000L});
    public static final BitSet FOLLOW_rule__Connection__Group__2_in_rule__Connection__Group__13285 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__Connection__Group__1__Impl3313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group__2__Impl_in_rule__Connection__Group__23344 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_rule__Connection__Group__3_in_rule__Connection__Group__23347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Alternatives_2_in_rule__Connection__Group__2__Impl3374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group__3__Impl_in_rule__Connection__Group__33404 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__Connection__Group__3__Impl3432 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0__0__Impl_in_rule__Connection__Group_2_0__03471 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0__1_in_rule__Connection__Group_2_0__03474 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_0__0_in_rule__Connection__Group_2_0__0__Impl3501 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0__1__Impl_in_rule__Connection__Group_2_0__13531 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1_in_rule__Connection__Group_2_0__1__Impl3558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_0__0__Impl_in_rule__Connection__Group_2_0_0__03592 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_0__1_in_rule__Connection__Group_2_0_0__03595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_0_0__0__Impl3623 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_0__1__Impl_in_rule__Connection__Group_2_0_0__13654 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_0__2_in_rule__Connection__Group_2_0_0__13657 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_0__1__Impl3685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_0__2__Impl_in_rule__Connection__Group_2_0_0__23716 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_0_0_2_in_rule__Connection__Group_2_0_0__2__Impl3743 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__0__Impl_in_rule__Connection__Group_2_0_1_0__03779 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__1_in_rule__Connection__Group_2_0_1_0__03782 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_0_1_0__0__Impl3810 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__1__Impl_in_rule__Connection__Group_2_0_1_0__13841 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__2_in_rule__Connection__Group_2_0_1_0__13844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_0_1_0__1__Impl3872 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__2__Impl_in_rule__Connection__Group_2_0_1_0__23903 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__3_in_rule__Connection__Group_2_0_1_0__23906 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_1_0__2__Impl3934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__3__Impl_in_rule__Connection__Group_2_0_1_0__33965 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_0_1_0_3_in_rule__Connection__Group_2_0_1_0__3__Impl3992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__0__Impl_in_rule__Connection__Group_2_0_1_1__04030 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__1_in_rule__Connection__Group_2_0_1_1__04033 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_0_1_1__0__Impl4061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__1__Impl_in_rule__Connection__Group_2_0_1_1__14092 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__2_in_rule__Connection__Group_2_0_1_1__14095 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_0_1_1__1__Impl4123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__2__Impl_in_rule__Connection__Group_2_0_1_1__24154 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__3_in_rule__Connection__Group_2_0_1_1__24157 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_1_1__2__Impl4185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__3__Impl_in_rule__Connection__Group_2_0_1_1__34216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_0_1_1_3_in_rule__Connection__Group_2_0_1_1__3__Impl4243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__0__Impl_in_rule__Connection__Group_2_0_1_2__04281 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__1_in_rule__Connection__Group_2_0_1_2__04284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_0_1_2__0__Impl4312 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__1__Impl_in_rule__Connection__Group_2_0_1_2__14343 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__2_in_rule__Connection__Group_2_0_1_2__14346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_0_1_2__1__Impl4374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__2__Impl_in_rule__Connection__Group_2_0_1_2__24405 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__3_in_rule__Connection__Group_2_0_1_2__24408 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_1_2__2__Impl4436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__3__Impl_in_rule__Connection__Group_2_0_1_2__34467 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_0_1_2_3_in_rule__Connection__Group_2_0_1_2__3__Impl4494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__0__Impl_in_rule__Connection__Group_2_0_1_3__04532 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__1_in_rule__Connection__Group_2_0_1_3__04535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_0_1_3__0__Impl4563 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__1__Impl_in_rule__Connection__Group_2_0_1_3__14594 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__2_in_rule__Connection__Group_2_0_1_3__14597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_0_1_3__1__Impl4625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__2__Impl_in_rule__Connection__Group_2_0_1_3__24656 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__3_in_rule__Connection__Group_2_0_1_3__24659 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_1_3__2__Impl4687 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__3__Impl_in_rule__Connection__Group_2_0_1_3__34718 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_0_1_3_3_in_rule__Connection__Group_2_0_1_3__3__Impl4745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__0__Impl_in_rule__Connection__Group_2_0_1_4__04783 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__1_in_rule__Connection__Group_2_0_1_4__04786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_0_1_4__0__Impl4814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__1__Impl_in_rule__Connection__Group_2_0_1_4__14845 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__2_in_rule__Connection__Group_2_0_1_4__14848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_0_1_4__1__Impl4876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__2__Impl_in_rule__Connection__Group_2_0_1_4__24907 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__3_in_rule__Connection__Group_2_0_1_4__24910 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_1_4__2__Impl4938 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__3__Impl_in_rule__Connection__Group_2_0_1_4__34969 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_0_1_4_3_in_rule__Connection__Group_2_0_1_4__3__Impl4996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__0__Impl_in_rule__Connection__Group_2_0_1_5__05034 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__1_in_rule__Connection__Group_2_0_1_5__05037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_0_1_5__0__Impl5065 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__1__Impl_in_rule__Connection__Group_2_0_1_5__15096 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__2_in_rule__Connection__Group_2_0_1_5__15099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_0_1_5__1__Impl5127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__2__Impl_in_rule__Connection__Group_2_0_1_5__25158 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__3_in_rule__Connection__Group_2_0_1_5__25161 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_0_1_5__2__Impl5189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__3__Impl_in_rule__Connection__Group_2_0_1_5__35220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_0_1_5_3_in_rule__Connection__Group_2_0_1_5__3__Impl5247 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1__0__Impl_in_rule__Connection__Group_2_1__05285 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1__1_in_rule__Connection__Group_2_1__05288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_0__0_in_rule__Connection__Group_2_1__0__Impl5315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1__1__Impl_in_rule__Connection__Group_2_1__15345 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1_in_rule__Connection__Group_2_1__1__Impl5372 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_0__0__Impl_in_rule__Connection__Group_2_1_0__05406 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_0__1_in_rule__Connection__Group_2_1_0__05409 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_1_0__0__Impl5437 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_0__1__Impl_in_rule__Connection__Group_2_1_0__15468 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_0__2_in_rule__Connection__Group_2_1_0__15471 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_0__1__Impl5499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_0__2__Impl_in_rule__Connection__Group_2_1_0__25530 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_1_0_2_in_rule__Connection__Group_2_1_0__2__Impl5557 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__0__Impl_in_rule__Connection__Group_2_1_1_0__05593 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__1_in_rule__Connection__Group_2_1_1_0__05596 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_1_1_0__0__Impl5624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__1__Impl_in_rule__Connection__Group_2_1_1_0__15655 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__2_in_rule__Connection__Group_2_1_1_0__15658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_1_1_0__1__Impl5686 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__2__Impl_in_rule__Connection__Group_2_1_1_0__25717 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__3_in_rule__Connection__Group_2_1_1_0__25720 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_1_0__2__Impl5748 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__3__Impl_in_rule__Connection__Group_2_1_1_0__35779 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_1_1_0_3_in_rule__Connection__Group_2_1_1_0__3__Impl5806 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__0__Impl_in_rule__Connection__Group_2_1_1_1__05844 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__1_in_rule__Connection__Group_2_1_1_1__05847 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_1_1_1__0__Impl5875 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__1__Impl_in_rule__Connection__Group_2_1_1_1__15906 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__2_in_rule__Connection__Group_2_1_1_1__15909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_1_1_1__1__Impl5937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__2__Impl_in_rule__Connection__Group_2_1_1_1__25968 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__3_in_rule__Connection__Group_2_1_1_1__25971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_1_1__2__Impl5999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__3__Impl_in_rule__Connection__Group_2_1_1_1__36030 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_1_1_1_3_in_rule__Connection__Group_2_1_1_1__3__Impl6057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__0__Impl_in_rule__Connection__Group_2_1_1_2__06095 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__1_in_rule__Connection__Group_2_1_1_2__06098 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_1_1_2__0__Impl6126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__1__Impl_in_rule__Connection__Group_2_1_1_2__16157 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__2_in_rule__Connection__Group_2_1_1_2__16160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_1_1_2__1__Impl6188 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__2__Impl_in_rule__Connection__Group_2_1_1_2__26219 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__3_in_rule__Connection__Group_2_1_1_2__26222 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_1_2__2__Impl6250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__3__Impl_in_rule__Connection__Group_2_1_1_2__36281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_1_1_2_3_in_rule__Connection__Group_2_1_1_2__3__Impl6308 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__0__Impl_in_rule__Connection__Group_2_1_1_3__06346 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__1_in_rule__Connection__Group_2_1_1_3__06349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_1_1_3__0__Impl6377 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__1__Impl_in_rule__Connection__Group_2_1_1_3__16408 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__2_in_rule__Connection__Group_2_1_1_3__16411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_1_1_3__1__Impl6439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__2__Impl_in_rule__Connection__Group_2_1_1_3__26470 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__3_in_rule__Connection__Group_2_1_1_3__26473 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_1_3__2__Impl6501 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__3__Impl_in_rule__Connection__Group_2_1_1_3__36532 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_1_1_3_3_in_rule__Connection__Group_2_1_1_3__3__Impl6559 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__0__Impl_in_rule__Connection__Group_2_1_1_4__06597 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__1_in_rule__Connection__Group_2_1_1_4__06600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_1_1_4__0__Impl6628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__1__Impl_in_rule__Connection__Group_2_1_1_4__16659 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__2_in_rule__Connection__Group_2_1_1_4__16662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_1_1_4__1__Impl6690 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__2__Impl_in_rule__Connection__Group_2_1_1_4__26721 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__3_in_rule__Connection__Group_2_1_1_4__26724 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_1_4__2__Impl6752 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__3__Impl_in_rule__Connection__Group_2_1_1_4__36783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_1_1_4_3_in_rule__Connection__Group_2_1_1_4__3__Impl6810 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__0__Impl_in_rule__Connection__Group_2_1_1_5__06848 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__1_in_rule__Connection__Group_2_1_1_5__06851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_1_1_5__0__Impl6879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__1__Impl_in_rule__Connection__Group_2_1_1_5__16910 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__2_in_rule__Connection__Group_2_1_1_5__16913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_1_1_5__1__Impl6941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__2__Impl_in_rule__Connection__Group_2_1_1_5__26972 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__3_in_rule__Connection__Group_2_1_1_5__26975 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_1_1_5__2__Impl7003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__3__Impl_in_rule__Connection__Group_2_1_1_5__37034 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_1_1_5_3_in_rule__Connection__Group_2_1_1_5__3__Impl7061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2__0__Impl_in_rule__Connection__Group_2_2__07099 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2__1_in_rule__Connection__Group_2_2__07102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_0__0_in_rule__Connection__Group_2_2__0__Impl7129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2__1__Impl_in_rule__Connection__Group_2_2__17159 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1_in_rule__Connection__Group_2_2__1__Impl7186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_0__0__Impl_in_rule__Connection__Group_2_2_0__07220 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_0__1_in_rule__Connection__Group_2_2_0__07223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_2_0__0__Impl7251 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_0__1__Impl_in_rule__Connection__Group_2_2_0__17282 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_0__2_in_rule__Connection__Group_2_2_0__17285 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_0__1__Impl7313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_0__2__Impl_in_rule__Connection__Group_2_2_0__27344 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_2_0_2_in_rule__Connection__Group_2_2_0__2__Impl7371 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__0__Impl_in_rule__Connection__Group_2_2_1_0__07407 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__1_in_rule__Connection__Group_2_2_1_0__07410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_2_1_0__0__Impl7438 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__1__Impl_in_rule__Connection__Group_2_2_1_0__17469 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__2_in_rule__Connection__Group_2_2_1_0__17472 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_2_1_0__1__Impl7500 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__2__Impl_in_rule__Connection__Group_2_2_1_0__27531 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__3_in_rule__Connection__Group_2_2_1_0__27534 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_1_0__2__Impl7562 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__3__Impl_in_rule__Connection__Group_2_2_1_0__37593 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_2_1_0_3_in_rule__Connection__Group_2_2_1_0__3__Impl7620 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__0__Impl_in_rule__Connection__Group_2_2_1_1__07658 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__1_in_rule__Connection__Group_2_2_1_1__07661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_2_1_1__0__Impl7689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__1__Impl_in_rule__Connection__Group_2_2_1_1__17720 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__2_in_rule__Connection__Group_2_2_1_1__17723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_2_1_1__1__Impl7751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__2__Impl_in_rule__Connection__Group_2_2_1_1__27782 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__3_in_rule__Connection__Group_2_2_1_1__27785 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_1_1__2__Impl7813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__3__Impl_in_rule__Connection__Group_2_2_1_1__37844 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_2_1_1_3_in_rule__Connection__Group_2_2_1_1__3__Impl7871 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__0__Impl_in_rule__Connection__Group_2_2_1_2__07909 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__1_in_rule__Connection__Group_2_2_1_2__07912 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_2_1_2__0__Impl7940 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__1__Impl_in_rule__Connection__Group_2_2_1_2__17971 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__2_in_rule__Connection__Group_2_2_1_2__17974 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_2_1_2__1__Impl8002 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__2__Impl_in_rule__Connection__Group_2_2_1_2__28033 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__3_in_rule__Connection__Group_2_2_1_2__28036 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_1_2__2__Impl8064 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__3__Impl_in_rule__Connection__Group_2_2_1_2__38095 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_2_1_2_3_in_rule__Connection__Group_2_2_1_2__3__Impl8122 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__0__Impl_in_rule__Connection__Group_2_2_1_3__08160 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__1_in_rule__Connection__Group_2_2_1_3__08163 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_2_1_3__0__Impl8191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__1__Impl_in_rule__Connection__Group_2_2_1_3__18222 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__2_in_rule__Connection__Group_2_2_1_3__18225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_2_1_3__1__Impl8253 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__2__Impl_in_rule__Connection__Group_2_2_1_3__28284 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__3_in_rule__Connection__Group_2_2_1_3__28287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_1_3__2__Impl8315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__3__Impl_in_rule__Connection__Group_2_2_1_3__38346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_2_1_3_3_in_rule__Connection__Group_2_2_1_3__3__Impl8373 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__0__Impl_in_rule__Connection__Group_2_2_1_4__08411 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__1_in_rule__Connection__Group_2_2_1_4__08414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_2_1_4__0__Impl8442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__1__Impl_in_rule__Connection__Group_2_2_1_4__18473 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__2_in_rule__Connection__Group_2_2_1_4__18476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_2_1_4__1__Impl8504 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__2__Impl_in_rule__Connection__Group_2_2_1_4__28535 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__3_in_rule__Connection__Group_2_2_1_4__28538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_1_4__2__Impl8566 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__3__Impl_in_rule__Connection__Group_2_2_1_4__38597 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_2_1_4_3_in_rule__Connection__Group_2_2_1_4__3__Impl8624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__0__Impl_in_rule__Connection__Group_2_2_1_5__08662 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__1_in_rule__Connection__Group_2_2_1_5__08665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_2_1_5__0__Impl8693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__1__Impl_in_rule__Connection__Group_2_2_1_5__18724 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__2_in_rule__Connection__Group_2_2_1_5__18727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_2_1_5__1__Impl8755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__2__Impl_in_rule__Connection__Group_2_2_1_5__28786 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__3_in_rule__Connection__Group_2_2_1_5__28789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_2_1_5__2__Impl8817 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__3__Impl_in_rule__Connection__Group_2_2_1_5__38848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_2_1_5_3_in_rule__Connection__Group_2_2_1_5__3__Impl8875 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3__0__Impl_in_rule__Connection__Group_2_3__08913 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3__1_in_rule__Connection__Group_2_3__08916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_0__0_in_rule__Connection__Group_2_3__0__Impl8943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3__1__Impl_in_rule__Connection__Group_2_3__18973 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1_in_rule__Connection__Group_2_3__1__Impl9000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_0__0__Impl_in_rule__Connection__Group_2_3_0__09034 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_0__1_in_rule__Connection__Group_2_3_0__09037 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_3_0__0__Impl9065 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_0__1__Impl_in_rule__Connection__Group_2_3_0__19096 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_0__2_in_rule__Connection__Group_2_3_0__19099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_0__1__Impl9127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_0__2__Impl_in_rule__Connection__Group_2_3_0__29158 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_3_0_2_in_rule__Connection__Group_2_3_0__2__Impl9185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__0__Impl_in_rule__Connection__Group_2_3_1_0__09221 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__1_in_rule__Connection__Group_2_3_1_0__09224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_3_1_0__0__Impl9252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__1__Impl_in_rule__Connection__Group_2_3_1_0__19283 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__2_in_rule__Connection__Group_2_3_1_0__19286 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_3_1_0__1__Impl9314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__2__Impl_in_rule__Connection__Group_2_3_1_0__29345 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__3_in_rule__Connection__Group_2_3_1_0__29348 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_1_0__2__Impl9376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__3__Impl_in_rule__Connection__Group_2_3_1_0__39407 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_3_1_0_3_in_rule__Connection__Group_2_3_1_0__3__Impl9434 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__0__Impl_in_rule__Connection__Group_2_3_1_1__09472 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__1_in_rule__Connection__Group_2_3_1_1__09475 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_3_1_1__0__Impl9503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__1__Impl_in_rule__Connection__Group_2_3_1_1__19534 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__2_in_rule__Connection__Group_2_3_1_1__19537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_3_1_1__1__Impl9565 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__2__Impl_in_rule__Connection__Group_2_3_1_1__29596 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__3_in_rule__Connection__Group_2_3_1_1__29599 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_1_1__2__Impl9627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__3__Impl_in_rule__Connection__Group_2_3_1_1__39658 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_3_1_1_3_in_rule__Connection__Group_2_3_1_1__3__Impl9685 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__0__Impl_in_rule__Connection__Group_2_3_1_2__09723 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__1_in_rule__Connection__Group_2_3_1_2__09726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_3_1_2__0__Impl9754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__1__Impl_in_rule__Connection__Group_2_3_1_2__19785 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__2_in_rule__Connection__Group_2_3_1_2__19788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_3_1_2__1__Impl9816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__2__Impl_in_rule__Connection__Group_2_3_1_2__29847 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__3_in_rule__Connection__Group_2_3_1_2__29850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_1_2__2__Impl9878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__3__Impl_in_rule__Connection__Group_2_3_1_2__39909 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_3_1_2_3_in_rule__Connection__Group_2_3_1_2__3__Impl9936 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__0__Impl_in_rule__Connection__Group_2_3_1_3__09974 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__1_in_rule__Connection__Group_2_3_1_3__09977 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_3_1_3__0__Impl10005 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__1__Impl_in_rule__Connection__Group_2_3_1_3__110036 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__2_in_rule__Connection__Group_2_3_1_3__110039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_3_1_3__1__Impl10067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__2__Impl_in_rule__Connection__Group_2_3_1_3__210098 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__3_in_rule__Connection__Group_2_3_1_3__210101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_1_3__2__Impl10129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__3__Impl_in_rule__Connection__Group_2_3_1_3__310160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_3_1_3_3_in_rule__Connection__Group_2_3_1_3__3__Impl10187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__0__Impl_in_rule__Connection__Group_2_3_1_4__010225 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__1_in_rule__Connection__Group_2_3_1_4__010228 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_3_1_4__0__Impl10256 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__1__Impl_in_rule__Connection__Group_2_3_1_4__110287 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__2_in_rule__Connection__Group_2_3_1_4__110290 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_3_1_4__1__Impl10318 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__2__Impl_in_rule__Connection__Group_2_3_1_4__210349 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__3_in_rule__Connection__Group_2_3_1_4__210352 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_1_4__2__Impl10380 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__3__Impl_in_rule__Connection__Group_2_3_1_4__310411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_3_1_4_3_in_rule__Connection__Group_2_3_1_4__3__Impl10438 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__0__Impl_in_rule__Connection__Group_2_3_1_5__010476 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__1_in_rule__Connection__Group_2_3_1_5__010479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_3_1_5__0__Impl10507 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__1__Impl_in_rule__Connection__Group_2_3_1_5__110538 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__2_in_rule__Connection__Group_2_3_1_5__110541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_3_1_5__1__Impl10569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__2__Impl_in_rule__Connection__Group_2_3_1_5__210600 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__3_in_rule__Connection__Group_2_3_1_5__210603 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_3_1_5__2__Impl10631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__3__Impl_in_rule__Connection__Group_2_3_1_5__310662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_3_1_5_3_in_rule__Connection__Group_2_3_1_5__3__Impl10689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4__0__Impl_in_rule__Connection__Group_2_4__010727 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4__1_in_rule__Connection__Group_2_4__010730 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_0__0_in_rule__Connection__Group_2_4__0__Impl10757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4__1__Impl_in_rule__Connection__Group_2_4__110787 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1_in_rule__Connection__Group_2_4__1__Impl10814 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_0__0__Impl_in_rule__Connection__Group_2_4_0__010848 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_0__1_in_rule__Connection__Group_2_4_0__010851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_4_0__0__Impl10879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_0__1__Impl_in_rule__Connection__Group_2_4_0__110910 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_0__2_in_rule__Connection__Group_2_4_0__110913 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_0__1__Impl10941 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_0__2__Impl_in_rule__Connection__Group_2_4_0__210972 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_4_0_2_in_rule__Connection__Group_2_4_0__2__Impl10999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__0__Impl_in_rule__Connection__Group_2_4_1_0__011035 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__1_in_rule__Connection__Group_2_4_1_0__011038 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_4_1_0__0__Impl11066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__1__Impl_in_rule__Connection__Group_2_4_1_0__111097 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__2_in_rule__Connection__Group_2_4_1_0__111100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_4_1_0__1__Impl11128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__2__Impl_in_rule__Connection__Group_2_4_1_0__211159 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__3_in_rule__Connection__Group_2_4_1_0__211162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_1_0__2__Impl11190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__3__Impl_in_rule__Connection__Group_2_4_1_0__311221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_4_1_0_3_in_rule__Connection__Group_2_4_1_0__3__Impl11248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__0__Impl_in_rule__Connection__Group_2_4_1_1__011286 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__1_in_rule__Connection__Group_2_4_1_1__011289 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_4_1_1__0__Impl11317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__1__Impl_in_rule__Connection__Group_2_4_1_1__111348 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__2_in_rule__Connection__Group_2_4_1_1__111351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_4_1_1__1__Impl11379 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__2__Impl_in_rule__Connection__Group_2_4_1_1__211410 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__3_in_rule__Connection__Group_2_4_1_1__211413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_1_1__2__Impl11441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__3__Impl_in_rule__Connection__Group_2_4_1_1__311472 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_4_1_1_3_in_rule__Connection__Group_2_4_1_1__3__Impl11499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__0__Impl_in_rule__Connection__Group_2_4_1_2__011537 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__1_in_rule__Connection__Group_2_4_1_2__011540 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_4_1_2__0__Impl11568 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__1__Impl_in_rule__Connection__Group_2_4_1_2__111599 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__2_in_rule__Connection__Group_2_4_1_2__111602 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_4_1_2__1__Impl11630 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__2__Impl_in_rule__Connection__Group_2_4_1_2__211661 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__3_in_rule__Connection__Group_2_4_1_2__211664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_1_2__2__Impl11692 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__3__Impl_in_rule__Connection__Group_2_4_1_2__311723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_4_1_2_3_in_rule__Connection__Group_2_4_1_2__3__Impl11750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__0__Impl_in_rule__Connection__Group_2_4_1_3__011788 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__1_in_rule__Connection__Group_2_4_1_3__011791 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_4_1_3__0__Impl11819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__1__Impl_in_rule__Connection__Group_2_4_1_3__111850 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__2_in_rule__Connection__Group_2_4_1_3__111853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_4_1_3__1__Impl11881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__2__Impl_in_rule__Connection__Group_2_4_1_3__211912 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__3_in_rule__Connection__Group_2_4_1_3__211915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_1_3__2__Impl11943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__3__Impl_in_rule__Connection__Group_2_4_1_3__311974 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_4_1_3_3_in_rule__Connection__Group_2_4_1_3__3__Impl12001 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__0__Impl_in_rule__Connection__Group_2_4_1_4__012039 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__1_in_rule__Connection__Group_2_4_1_4__012042 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_4_1_4__0__Impl12070 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__1__Impl_in_rule__Connection__Group_2_4_1_4__112101 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__2_in_rule__Connection__Group_2_4_1_4__112104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_4_1_4__1__Impl12132 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__2__Impl_in_rule__Connection__Group_2_4_1_4__212163 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__3_in_rule__Connection__Group_2_4_1_4__212166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_1_4__2__Impl12194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__3__Impl_in_rule__Connection__Group_2_4_1_4__312225 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_4_1_4_3_in_rule__Connection__Group_2_4_1_4__3__Impl12252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__0__Impl_in_rule__Connection__Group_2_4_1_5__012290 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__1_in_rule__Connection__Group_2_4_1_5__012293 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_4_1_5__0__Impl12321 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__1__Impl_in_rule__Connection__Group_2_4_1_5__112352 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__2_in_rule__Connection__Group_2_4_1_5__112355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_4_1_5__1__Impl12383 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__2__Impl_in_rule__Connection__Group_2_4_1_5__212414 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__3_in_rule__Connection__Group_2_4_1_5__212417 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_4_1_5__2__Impl12445 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__3__Impl_in_rule__Connection__Group_2_4_1_5__312476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_4_1_5_3_in_rule__Connection__Group_2_4_1_5__3__Impl12503 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5__0__Impl_in_rule__Connection__Group_2_5__012541 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5__1_in_rule__Connection__Group_2_5__012544 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_0__0_in_rule__Connection__Group_2_5__0__Impl12571 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5__1__Impl_in_rule__Connection__Group_2_5__112601 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1_in_rule__Connection__Group_2_5__1__Impl12628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_0__0__Impl_in_rule__Connection__Group_2_5_0__012662 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_0__1_in_rule__Connection__Group_2_5_0__012665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_5_0__0__Impl12693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_0__1__Impl_in_rule__Connection__Group_2_5_0__112724 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_0__2_in_rule__Connection__Group_2_5_0__112727 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_0__1__Impl12755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_0__2__Impl_in_rule__Connection__Group_2_5_0__212786 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_5_0_2_in_rule__Connection__Group_2_5_0__2__Impl12813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__0__Impl_in_rule__Connection__Group_2_5_1_0__012849 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__1_in_rule__Connection__Group_2_5_1_0__012852 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_5_1_0__0__Impl12880 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__1__Impl_in_rule__Connection__Group_2_5_1_0__112911 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__2_in_rule__Connection__Group_2_5_1_0__112914 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_5_1_0__1__Impl12942 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__2__Impl_in_rule__Connection__Group_2_5_1_0__212973 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__3_in_rule__Connection__Group_2_5_1_0__212976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_1_0__2__Impl13004 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__3__Impl_in_rule__Connection__Group_2_5_1_0__313035 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_5_1_0_3_in_rule__Connection__Group_2_5_1_0__3__Impl13062 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__0__Impl_in_rule__Connection__Group_2_5_1_1__013100 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__1_in_rule__Connection__Group_2_5_1_1__013103 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_5_1_1__0__Impl13131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__1__Impl_in_rule__Connection__Group_2_5_1_1__113162 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__2_in_rule__Connection__Group_2_5_1_1__113165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_5_1_1__1__Impl13193 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__2__Impl_in_rule__Connection__Group_2_5_1_1__213224 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__3_in_rule__Connection__Group_2_5_1_1__213227 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_1_1__2__Impl13255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__3__Impl_in_rule__Connection__Group_2_5_1_1__313286 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_5_1_1_3_in_rule__Connection__Group_2_5_1_1__3__Impl13313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__0__Impl_in_rule__Connection__Group_2_5_1_2__013351 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__1_in_rule__Connection__Group_2_5_1_2__013354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_5_1_2__0__Impl13382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__1__Impl_in_rule__Connection__Group_2_5_1_2__113413 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__2_in_rule__Connection__Group_2_5_1_2__113416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_5_1_2__1__Impl13444 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__2__Impl_in_rule__Connection__Group_2_5_1_2__213475 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__3_in_rule__Connection__Group_2_5_1_2__213478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_1_2__2__Impl13506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__3__Impl_in_rule__Connection__Group_2_5_1_2__313537 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_5_1_2_3_in_rule__Connection__Group_2_5_1_2__3__Impl13564 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__0__Impl_in_rule__Connection__Group_2_5_1_3__013602 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__1_in_rule__Connection__Group_2_5_1_3__013605 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_5_1_3__0__Impl13633 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__1__Impl_in_rule__Connection__Group_2_5_1_3__113664 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__2_in_rule__Connection__Group_2_5_1_3__113667 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_5_1_3__1__Impl13695 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__2__Impl_in_rule__Connection__Group_2_5_1_3__213726 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__3_in_rule__Connection__Group_2_5_1_3__213729 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_1_3__2__Impl13757 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__3__Impl_in_rule__Connection__Group_2_5_1_3__313788 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_5_1_3_3_in_rule__Connection__Group_2_5_1_3__3__Impl13815 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__0__Impl_in_rule__Connection__Group_2_5_1_4__013853 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__1_in_rule__Connection__Group_2_5_1_4__013856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_5_1_4__0__Impl13884 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__1__Impl_in_rule__Connection__Group_2_5_1_4__113915 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__2_in_rule__Connection__Group_2_5_1_4__113918 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_5_1_4__1__Impl13946 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__2__Impl_in_rule__Connection__Group_2_5_1_4__213977 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__3_in_rule__Connection__Group_2_5_1_4__213980 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_1_4__2__Impl14008 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__3__Impl_in_rule__Connection__Group_2_5_1_4__314039 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_5_1_4_3_in_rule__Connection__Group_2_5_1_4__3__Impl14066 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__0__Impl_in_rule__Connection__Group_2_5_1_5__014104 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__1_in_rule__Connection__Group_2_5_1_5__014107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_5_1_5__0__Impl14135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__1__Impl_in_rule__Connection__Group_2_5_1_5__114166 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__2_in_rule__Connection__Group_2_5_1_5__114169 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_5_1_5__1__Impl14197 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__2__Impl_in_rule__Connection__Group_2_5_1_5__214228 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__3_in_rule__Connection__Group_2_5_1_5__214231 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_5_1_5__2__Impl14259 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__3__Impl_in_rule__Connection__Group_2_5_1_5__314290 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_5_1_5_3_in_rule__Connection__Group_2_5_1_5__3__Impl14317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6__0__Impl_in_rule__Connection__Group_2_6__014355 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6__1_in_rule__Connection__Group_2_6__014358 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_0__0_in_rule__Connection__Group_2_6__0__Impl14385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6__1__Impl_in_rule__Connection__Group_2_6__114415 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1_in_rule__Connection__Group_2_6__1__Impl14442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_0__0__Impl_in_rule__Connection__Group_2_6_0__014476 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_0__1_in_rule__Connection__Group_2_6_0__014479 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_rule__Connection__Group_2_6_0__0__Impl14507 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_0__1__Impl_in_rule__Connection__Group_2_6_0__114538 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_0__2_in_rule__Connection__Group_2_6_0__114541 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_0__1__Impl14569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_0__2__Impl_in_rule__Connection__Group_2_6_0__214600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PoolsizeAssignment_2_6_0_2_in_rule__Connection__Group_2_6_0__2__Impl14627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__0__Impl_in_rule__Connection__Group_2_6_1_0__014663 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__1_in_rule__Connection__Group_2_6_1_0__014666 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_6_1_0__0__Impl14694 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__1__Impl_in_rule__Connection__Group_2_6_1_0__114725 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__2_in_rule__Connection__Group_2_6_1_0__114728 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_rule__Connection__Group_2_6_1_0__1__Impl14756 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__2__Impl_in_rule__Connection__Group_2_6_1_0__214787 = new BitSet(new long[]{0x000001C000000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__3_in_rule__Connection__Group_2_6_1_0__214790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_1_0__2__Impl14818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__3__Impl_in_rule__Connection__Group_2_6_1_0__314849 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__TypeAssignment_2_6_1_0_3_in_rule__Connection__Group_2_6_1_0__3__Impl14876 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__0__Impl_in_rule__Connection__Group_2_6_1_1__014914 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__1_in_rule__Connection__Group_2_6_1_1__014917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_6_1_1__0__Impl14945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__1__Impl_in_rule__Connection__Group_2_6_1_1__114976 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__2_in_rule__Connection__Group_2_6_1_1__114979 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_rule__Connection__Group_2_6_1_1__1__Impl15007 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__2__Impl_in_rule__Connection__Group_2_6_1_1__215038 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__3_in_rule__Connection__Group_2_6_1_1__215041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_1_1__2__Impl15069 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__3__Impl_in_rule__Connection__Group_2_6_1_1__315100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__DbnameAssignment_2_6_1_1_3_in_rule__Connection__Group_2_6_1_1__3__Impl15127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__0__Impl_in_rule__Connection__Group_2_6_1_2__015165 = new BitSet(new long[]{0x0000000008000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__1_in_rule__Connection__Group_2_6_1_2__015168 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_6_1_2__0__Impl15196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__1__Impl_in_rule__Connection__Group_2_6_1_2__115227 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__2_in_rule__Connection__Group_2_6_1_2__115230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_rule__Connection__Group_2_6_1_2__1__Impl15258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__2__Impl_in_rule__Connection__Group_2_6_1_2__215289 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__3_in_rule__Connection__Group_2_6_1_2__215292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_1_2__2__Impl15320 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__3__Impl_in_rule__Connection__Group_2_6_1_2__315351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UserAssignment_2_6_1_2_3_in_rule__Connection__Group_2_6_1_2__3__Impl15378 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__0__Impl_in_rule__Connection__Group_2_6_1_3__015416 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__1_in_rule__Connection__Group_2_6_1_3__015419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_6_1_3__0__Impl15447 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__1__Impl_in_rule__Connection__Group_2_6_1_3__115478 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__2_in_rule__Connection__Group_2_6_1_3__115481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_rule__Connection__Group_2_6_1_3__1__Impl15509 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__2__Impl_in_rule__Connection__Group_2_6_1_3__215540 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__3_in_rule__Connection__Group_2_6_1_3__215543 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_1_3__2__Impl15571 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__3__Impl_in_rule__Connection__Group_2_6_1_3__315602 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PasswordAssignment_2_6_1_3_3_in_rule__Connection__Group_2_6_1_3__3__Impl15629 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__0__Impl_in_rule__Connection__Group_2_6_1_4__015667 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__1_in_rule__Connection__Group_2_6_1_4__015670 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_6_1_4__0__Impl15698 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__1__Impl_in_rule__Connection__Group_2_6_1_4__115729 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__2_in_rule__Connection__Group_2_6_1_4__115732 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_rule__Connection__Group_2_6_1_4__1__Impl15760 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__2__Impl_in_rule__Connection__Group_2_6_1_4__215791 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__3_in_rule__Connection__Group_2_6_1_4__215794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_1_4__2__Impl15822 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__3__Impl_in_rule__Connection__Group_2_6_1_4__315853 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UrlAssignment_2_6_1_4_3_in_rule__Connection__Group_2_6_1_4__3__Impl15880 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__0__Impl_in_rule__Connection__Group_2_6_1_5__015918 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__1_in_rule__Connection__Group_2_6_1_5__015921 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__Connection__Group_2_6_1_5__0__Impl15949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__1__Impl_in_rule__Connection__Group_2_6_1_5__115980 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__2_in_rule__Connection__Group_2_6_1_5__115983 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_rule__Connection__Group_2_6_1_5__1__Impl16011 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__2__Impl_in_rule__Connection__Group_2_6_1_5__216042 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__3_in_rule__Connection__Group_2_6_1_5__216045 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_rule__Connection__Group_2_6_1_5__2__Impl16073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__3__Impl_in_rule__Connection__Group_2_6_1_5__316104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__PortAssignment_2_6_1_5_3_in_rule__Connection__Group_2_6_1_5__3__Impl16131 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__0__Impl_in_rule__CreateDAO__Group__016169 = new BitSet(new long[]{0x0000020100100000L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__1_in_rule__CreateDAO__Group__016172 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__BasedaoAssignment_0_in_rule__CreateDAO__Group__0__Impl16199 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__1__Impl_in_rule__CreateDAO__Group__116230 = new BitSet(new long[]{0x0000000200200000L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__2_in_rule__CreateDAO__Group__116233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_rule__CreateDAO__Group__1__Impl16261 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__2__Impl_in_rule__CreateDAO__Group__216292 = new BitSet(new long[]{0x0000000200200000L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__3_in_rule__CreateDAO__Group__216295 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_2__0_in_rule__CreateDAO__Group__2__Impl16322 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__3__Impl_in_rule__CreateDAO__Group__316353 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__4_in_rule__CreateDAO__Group__316356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_rule__CreateDAO__Group__3__Impl16384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__4__Impl_in_rule__CreateDAO__Group__416415 = new BitSet(new long[]{0x0000000002400000L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__5_in_rule__CreateDAO__Group__416418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__FirstEntityAssignment_4_in_rule__CreateDAO__Group__4__Impl16445 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__5__Impl_in_rule__CreateDAO__Group__516475 = new BitSet(new long[]{0x0000000002400000L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__6_in_rule__CreateDAO__Group__516478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_5__0_in_rule__CreateDAO__Group__5__Impl16505 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group__6__Impl_in_rule__CreateDAO__Group__616536 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_22_in_rule__CreateDAO__Group__6__Impl16564 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_2__0__Impl_in_rule__CreateDAO__Group_2__016609 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_2__1_in_rule__CreateDAO__Group_2__016612 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_rule__CreateDAO__Group_2__0__Impl16640 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_2__1__Impl_in_rule__CreateDAO__Group_2__116671 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__DaolayerAssignment_2_1_in_rule__CreateDAO__Group_2__1__Impl16698 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_5__0__Impl_in_rule__CreateDAO__Group_5__016732 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_5__1_in_rule__CreateDAO__Group_5__016735 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_rule__CreateDAO__Group_5__0__Impl16763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__Group_5__1__Impl_in_rule__CreateDAO__Group_5__116794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__CreateDAO__EntitiesAssignment_5_1_in_rule__CreateDAO__Group_5__1__Impl16821 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__UnorderedGroup_1__0_in_rule__Model__UnorderedGroup_116856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__ConnectionAssignment_1_0_in_rule__Model__UnorderedGroup_1__Impl16943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__CreatedaoAssignment_1_1_in_rule__Model__UnorderedGroup_1__Impl17034 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__UnorderedGroup_1__Impl_in_rule__Model__UnorderedGroup_1__017093 = new BitSet(new long[]{0x0000020100100002L});
    public static final BitSet FOLLOW_rule__Model__UnorderedGroup_1__1_in_rule__Model__UnorderedGroup_1__017096 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Model__UnorderedGroup_1__Impl_in_rule__Model__UnorderedGroup_1__117121 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__UnorderedGroup_3__0_in_rule__Layer__UnorderedGroup_317149 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__ConnectionAssignment_3_0_in_rule__Layer__UnorderedGroup_3__Impl17236 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__CreatedaoAssignment_3_1_in_rule__Layer__UnorderedGroup_3__Impl17327 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__UnorderedGroup_3__Impl_in_rule__Layer__UnorderedGroup_3__017386 = new BitSet(new long[]{0x0000020100100002L});
    public static final BitSet FOLLOW_rule__Layer__UnorderedGroup_3__1_in_rule__Layer__UnorderedGroup_3__017389 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Layer__UnorderedGroup_3__Impl_in_rule__Layer__UnorderedGroup_3__117414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__0_in_rule__Connection__UnorderedGroup_2_0_117442 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_0__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17531 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_1__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_2__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17713 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_3__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_4__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17895 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_0_1_5__0_in_rule__Connection__UnorderedGroup_2_0_1__Impl17986 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__018045 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__1_in_rule__Connection__UnorderedGroup_2_0_1__018048 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__118073 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__2_in_rule__Connection__UnorderedGroup_2_0_1__118076 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__218101 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__3_in_rule__Connection__UnorderedGroup_2_0_1__218104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__318129 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__4_in_rule__Connection__UnorderedGroup_2_0_1__318132 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__418157 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__5_in_rule__Connection__UnorderedGroup_2_0_1__418160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_0_1__Impl_in_rule__Connection__UnorderedGroup_2_0_1__518185 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__0_in_rule__Connection__UnorderedGroup_2_1_118221 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_0__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_1__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18401 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_2__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18492 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_3__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18583 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_4__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18674 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_1_1_5__0_in_rule__Connection__UnorderedGroup_2_1_1__Impl18765 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__018824 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__1_in_rule__Connection__UnorderedGroup_2_1_1__018827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__118852 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__2_in_rule__Connection__UnorderedGroup_2_1_1__118855 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__218880 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__3_in_rule__Connection__UnorderedGroup_2_1_1__218883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__318908 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__4_in_rule__Connection__UnorderedGroup_2_1_1__318911 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__418936 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__5_in_rule__Connection__UnorderedGroup_2_1_1__418939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_1_1__Impl_in_rule__Connection__UnorderedGroup_2_1_1__518964 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__0_in_rule__Connection__UnorderedGroup_2_2_119000 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_0__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_1__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19180 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_2__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_3__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_4__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19453 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_2_1_5__0_in_rule__Connection__UnorderedGroup_2_2_1__Impl19544 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__019603 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__1_in_rule__Connection__UnorderedGroup_2_2_1__019606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__119631 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__2_in_rule__Connection__UnorderedGroup_2_2_1__119634 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__219659 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__3_in_rule__Connection__UnorderedGroup_2_2_1__219662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__319687 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__4_in_rule__Connection__UnorderedGroup_2_2_1__319690 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__419715 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__5_in_rule__Connection__UnorderedGroup_2_2_1__419718 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_2_1__Impl_in_rule__Connection__UnorderedGroup_2_2_1__519743 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__0_in_rule__Connection__UnorderedGroup_2_3_119779 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_0__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl19868 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_1__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl19959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_2__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20050 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_3__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20141 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_4__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_3_1_5__0_in_rule__Connection__UnorderedGroup_2_3_1__Impl20323 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__020382 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__1_in_rule__Connection__UnorderedGroup_2_3_1__020385 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__120410 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__2_in_rule__Connection__UnorderedGroup_2_3_1__120413 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__220438 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__3_in_rule__Connection__UnorderedGroup_2_3_1__220441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__320466 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__4_in_rule__Connection__UnorderedGroup_2_3_1__320469 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__420494 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__5_in_rule__Connection__UnorderedGroup_2_3_1__420497 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_3_1__Impl_in_rule__Connection__UnorderedGroup_2_3_1__520522 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__0_in_rule__Connection__UnorderedGroup_2_4_120558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_0__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20647 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_1__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20738 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_2__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20829 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_3__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl20920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_4__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl21011 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_4_1_5__0_in_rule__Connection__UnorderedGroup_2_4_1__Impl21102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__021161 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__1_in_rule__Connection__UnorderedGroup_2_4_1__021164 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__121189 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__2_in_rule__Connection__UnorderedGroup_2_4_1__121192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__221217 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__3_in_rule__Connection__UnorderedGroup_2_4_1__221220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__321245 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__4_in_rule__Connection__UnorderedGroup_2_4_1__321248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__421273 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__5_in_rule__Connection__UnorderedGroup_2_4_1__421276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_4_1__Impl_in_rule__Connection__UnorderedGroup_2_4_1__521301 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__0_in_rule__Connection__UnorderedGroup_2_5_121337 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_0__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21426 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_1__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21517 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_2__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21608 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_3__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21699 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_4__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21790 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_5_1_5__0_in_rule__Connection__UnorderedGroup_2_5_1__Impl21881 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__021940 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__1_in_rule__Connection__UnorderedGroup_2_5_1__021943 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__121968 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__2_in_rule__Connection__UnorderedGroup_2_5_1__121971 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__221996 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__3_in_rule__Connection__UnorderedGroup_2_5_1__221999 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__322024 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__4_in_rule__Connection__UnorderedGroup_2_5_1__322027 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__422052 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__5_in_rule__Connection__UnorderedGroup_2_5_1__422055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_5_1__Impl_in_rule__Connection__UnorderedGroup_2_5_1__522080 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__0_in_rule__Connection__UnorderedGroup_2_6_122116 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_0__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_1__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22296 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_2__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22387 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_3__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22478 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_4__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__Group_2_6_1_5__0_in_rule__Connection__UnorderedGroup_2_6_1__Impl22660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__022719 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__1_in_rule__Connection__UnorderedGroup_2_6_1__022722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__122747 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__2_in_rule__Connection__UnorderedGroup_2_6_1__122750 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__222775 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__3_in_rule__Connection__UnorderedGroup_2_6_1__222778 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__322803 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__4_in_rule__Connection__UnorderedGroup_2_6_1__322806 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__422831 = new BitSet(new long[]{0x0000000002000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__5_in_rule__Connection__UnorderedGroup_2_6_1__422834 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__Connection__UnorderedGroup_2_6_1__Impl_in_rule__Connection__UnorderedGroup_2_6_1__522859 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePackagePrefix_in_rule__Model__PackageAssignment_022899 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConnection_in_rule__Model__ConnectionAssignment_1_022930 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCreateDAO_in_rule__Model__CreatedaoAssignment_1_122961 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_rule__Model__TypesAssignment_222992 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleJAVAID_in_rule__PackagePrefix__NameAssignment_123023 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Layer__NameAssignment_123054 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleConnection_in_rule__Layer__ConnectionAssignment_3_023085 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCreateDAO_in_rule__Layer__CreatedaoAssignment_3_123116 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleType_in_rule__Layer__TypesAssignment_423147 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__TypeDef__NameAssignment_123178 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleJAVAID_in_rule__TypeDef__MappedTypeAssignment_2_123209 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Entity__NameAssignment_123240 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Entity__SuperEntityAssignment_2_123275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAttribute_in_rule__Entity__AttributesAssignment_423310 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_rule__Attribute__OneAssignment_0_023346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_rule__Attribute__ManyAssignment_0_123390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Attribute__TypeAssignment_123433 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__Attribute__NameAssignment_223468 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleFlags_in_rule__Attribute__FlagsAssignment_323499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_rule__Flags__IdAssignment_023535 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_rule__Flags__AutoidAssignment_123579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_0_0_223618 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_0_1_0_323649 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_0_1_1_323680 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_0_1_2_323711 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_0_1_3_323742 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_0_1_4_323773 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_0_1_5_323804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_1_0_223835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_1_1_0_323866 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_1_1_1_323897 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_1_1_2_323928 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_1_1_3_323959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_1_1_4_323990 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_1_1_5_324021 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_2_0_224052 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_2_1_0_324083 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_2_1_1_324114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_2_1_2_324145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_2_1_3_324176 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_2_1_4_324207 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_2_1_5_324238 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_3_0_224269 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_3_1_0_324300 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_3_1_1_324331 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_3_1_2_324362 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_3_1_3_324393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_3_1_4_324424 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_3_1_5_324455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_4_0_224486 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_4_1_0_324517 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_4_1_1_324548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_4_1_2_324579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_4_1_3_324610 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_4_1_4_324641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_4_1_5_324672 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_5_0_224703 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_5_1_0_324734 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_5_1_1_324765 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_5_1_2_324796 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_5_1_3_324827 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_5_1_4_324858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_5_1_5_324889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PoolsizeAssignment_2_6_0_224920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDataBase_in_rule__Connection__TypeAssignment_2_6_1_0_324951 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__DbnameAssignment_2_6_1_1_324982 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UserAssignment_2_6_1_2_325013 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PasswordAssignment_2_6_1_3_325044 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__UrlAssignment_2_6_1_4_325075 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_STRING_in_rule__Connection__PortAssignment_2_6_1_5_325106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_rule__DataBase__MysqlAssignment_025142 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_rule__DataBase__SqlserverAssignment_125186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_rule__DataBase__OracleAssignment_225230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_rule__CreateDAO__BasedaoAssignment_025274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__CreateDAO__DaolayerAssignment_2_125317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__CreateDAO__FirstEntityAssignment_425356 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__CreateDAO__EntitiesAssignment_5_125395 = new BitSet(new long[]{0x0000000000000002L});

}
